using UnityEngine;
using System.Collections;
public class Practise : MonoBehaviour {
private Transform _transfrom;
private const float _viewXUp = 60;
private const float _viewXDown = -30;
private float _currentViewXAngel = 0;
// Use this for initialization
void Start () {
_transfrom = GameObject.Find("Player").transform;
}
// Update is called once per frame
void Update () {
_transfrom.Translate(Vector3.forward * Time.deltaTime * Input.GetAxis("Vertical"), Space.Self);
_transfrom.Translate(Vector3.right * Time.deltaTime * Input.GetAxis("Horizontal"), Space.Self);
float mouseX = Input.GetAxis("Mouse X");
float mouseY = -Input.GetAxis("Mouse Y");
Quaternion qx = Quaternion.identity;
qx.eulerAngles = new Vector3(0, mouseX, 0);
Quaternion qy = Quaternion.identity;
qy.eulerAngles = new Vector3(mouseY, 0, 0);
_currentViewXAngel += mouseY;
_transfrom.rotation = qx * _transfrom.rotation;
if (_currentViewXAngel >= _viewXDown && _currentViewXAngel <= _viewXUp)
{
Camera.main.transform.localRotation = qy * Camera.main.transform.localRotation;
}
else
{
_currentViewXAngel -= mouseY;
}
Camera.main.transform.position = _transfrom.position;
Camera.main.transform.SetParent(_transfrom);
}
}
Unity简单的第一人称控制器编写
最新推荐文章于 2024-02-03 15:02:23 发布