Unity简单的第一人称控制器编写

来源:互联网 发布:软件用户手册 由谁来写 编辑:程序博客网 时间:2024/04/30 05:23
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);    }}
原创粉丝点击