概述
[RequireComponent (typeof(CharacterController))]
[RequireComponent (typeof(Rigidbody))]
public class FirstPerson : MonoBehaviour {
//移动的速度
public float speed;
//鼠标的水平偏移量
float offsetMouseX;
//鼠标在竖直方向上的偏移量
float offsetMouseY;
//人称控制器在水平方向上的旋转角度
public float rotateX;
private CharacterController m_CharacterController;
private float horizontal;
private float vertical;
private Camera m_mianCamera;
// Use this for initialization
void Start () {
m_CharacterController = GetComponent<CharacterController>();
m_mianCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>();
}
// Update is called once per frame
void Update () {
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
//控制第一人称控制器的移动效方向
Vector3 direction = (transform.forward * vertical + horizontal * transform.right).normalized;
m_CharacterController.SimpleMove(direction * speed * Time.deltaTime);
//第一人称控制器左右旋转
offsetMouseX = Input.GetAxis("Mouse X");
m_CharacterController.transform.Rotate(Vector3.up * offsetMouseX * rotateX * Time.deltaTime);
//第一人称控制器抬头低头看
offsetMouseY = Input.GetAxis("Mouse Y");
Vector3 cameraRotateAngle = -offsetMouseY * Vector3.right;
m_mianCamera.transform.eulerAngles += cameraRotateAngle;
}
最后
以上就是仁爱含羞草为你收集整理的Unity编写第一人称控制器的全部内容,希望文章能够帮你解决Unity编写第一人称控制器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复