您的位置:首页 > 移动开发 > Unity3D

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

2017-10-21 15:31 423 查看
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);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: