当前位置:   article > 正文

【Unity】射击小游戏_unity射击游戏源码

unity射击游戏源码


前言

演示
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、准备一些Object

示例:准备Player,Plane,Obstacle

在这里插入图片描述

二、代码示例

1.Player脚本

代码如下(示例):

/****************************************************
    文件:Player.cs
	作者:HKZ
    邮箱: 3046916186@qq.com
    日期:2022/1/9 12:2:45
	功能:Player输入(把此脚本挂在Player物体上)
*****************************************************/

using UnityEngine;

namespace HKZ
{
    [RequireComponent(typeof(PlayerController))]
    public class Player : MonoBehaviour
    {
        [SerializeField]
        private float moveSpeed = 5.0f;

        private Camera viewCamera;
        private PlayerController playerController;

        private void Start()
        {
            playerController = GetComponent<PlayerController>();
            viewCamera = Camera.main;
        }

        private void Update()
        {
            //Movement Input
            Vector3 moveInput = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
            Vector3 moveVelocity = moveInput.normalized * moveSpeed;
            playerController.Move(moveVelocity);

            //Look Input
            Ray ray = viewCamera.ScreenPointToRay(Input.mousePosition);
            Plane groundPlane = new Plane(Vector3.up, Vector3.zero);
            float rayDistance;
            if (groundPlane.Raycast(ray, out rayDistance))
            {
                Vector3 point = ray.GetPoint(rayDistance);
                //Debug.DrawLine(ray.origin, point, Color.red);
                playerController.LockAt(point);
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

2.PlayerController脚本

代码如下(示例):

/****************************************************
    文件:PlayerController.cs
	作者:HKZ
    邮箱: 3046916186@qq.com
    日期:2022/1/9 12:2:59
	功能:PlayerController方法
*****************************************************/

using UnityEngine;

namespace HKZ
{
    [RequireComponent(typeof(Rigidbody))]
    public class PlayerController : MonoBehaviour
    {
        private Vector3 velocity;

        private new Rigidbody rigidbody;

        private void Start()
        {
            rigidbody = GetComponent<Rigidbody>();
        }
        private void FixedUpdate()
        {
            rigidbody.MovePosition(rigidbody.position + velocity * Time.fixedDeltaTime);
        }

        public void Move(Vector3 moveVelocity)
        {
            velocity = moveVelocity;
        }

        public void LockAt(Vector3 point)
        {
            Vector3 heightCorrectedPoint = new Vector3(point.x, transform.position.y, point.z);
            transform.LookAt(heightCorrectedPoint);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

3.Hierarchy面板

在这里插入图片描述


总结

请添加图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/104045
推荐阅读
相关标签
  

闽ICP备14008679号