赞
踩
需要一个场景和一个player作为操作角色,并且在player子目录创建一个camera作为视角
这里演示我就随便创建一个plane作为地面和一个sphere作为player
然后调整好player的位置不要与地面镶嵌就像这样
然后需要给地面(你们自己的场景)和player添加一个Collider组件
在属性面板的Add Component添加
这个是碰撞体组件一般在Unity里创建3D物体会自动添加,不加会穿模
但是自己导入的模型需要自己添加,复杂的模型建议用Mesh Collider
同时要给player添加Character Controller组件
需要在Assets文件夹里创建一个Scripts文件夹用来保存脚本
然后在Scripts文件夹里创建一个脚本随你们命名,这里我命名为PlayerController
打开PlayerController脚本复制这个代码到里面,具体内容可以自己看一下改进
- using UnityEngine;
- /*
- @Author:Rekite
- */
- public class PlayerController : MonoBehaviour
- {
- CharacterController player; //定义角色控制器组件
- public new Transform camera; //新建一个camera对象用于放入所要实现的第一人称相机
- public float speed = 2f; //角色移动速度
- float x, y; //相机旋转x,y轴控制
- float g = 10f; //重力
- Vector3 playerrun; //控制玩家运动的向量
-
- void Start()
- {
- player = GetComponent<CharacterController>();//获取人物的角色控制器组件
- }
-
- void Update()
- {
-
- Cursor.lockState = CursorLockMode.Locked; // 锁定鼠标到视图中心
- Cursor.visible = false;//隐藏鼠标
-
- //控制玩家运动
- float _horizontal = Input.GetAxis("Horizontal");
- float _vertical = Input.GetAxis("Vertical");
- if (player.isGrounded)
- {
- playerrun = new Vector3(_horizontal, 0, _vertical);
- }
- playerrun.y -= g * Time.deltaTime;
- player.Move(player.transform.TransformDirection(playerrun * Time.deltaTime * speed));
-
- //使用鼠标来控制相机的视角的旋转
- x += Input.GetAxis("Mouse X");
- y -= Input.GetAxis("Mouse Y");
- transform.eulerAngles = new Vector3(0, x, 0);
- y = Mathf.Clamp(y, -45f, 45f);
- camera.eulerAngles = new Vector3(y, x, 0);
-
- //让相机z轴保持不变,防止相机倾斜
- if (camera.localEulerAngles.z != 0)
- {
- float rotX = camera.localEulerAngles.x;
- float rotY = camera.localEulerAngles.y;
- camera.localEulerAngles = new Vector3(rotX, rotY, 0);
- }
- }
- }
然后保存这个脚本回到Unity,点击player就能看到player属性面板
鼠标左击长按PlayerController脚本将脚本拖入player属性面版内
在player属性面板里找到PlayerController脚本组件
鼠标左击长按player子目录下的camera拖入PlayerController脚本组件里的camera属性框中
(这个Speed是player移动速度,可以自己调节)
(不想在属性面板显示速度的可以在脚本中将定义speed的public改为private)
因为项目创建的时候自带了一个maincamera,我们需要禁用这个maincamera
点击Main Camera,在属性面板上取消勾选
完成这一步就能运行并实现第一人称视角移动了
代码中有些内容可以根据自己需求改
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。