第三人称摄像机

来源:互联网 发布:ng-bind. 数组 编辑:程序博客网 时间:2024/04/27 15:45

1.先建立一个空对象,然后把主摄像机拉近空对象中

2.主角里面建立一个空对象

3.把主角里面建立的空对象拉到摄像机上的脚本


using UnityEngine;using System.Collections;using UnityEngine.UI;public class Camera : MonoBehaviour{public Transform playerPos;public float distance = 15.0f;public float xSpeed = 50.0f;public float ySpeed = 50.0f;public float yMinLimit = -20.0f;public float yMaxLimit = 40.0f;private float x;private float y;public float heightOffset = 3.5f;void Awake(){Vector3 angles = transform.eulerAngles;x = angles.x;y = angles.y;if(GetComponent<Rigidbody>() != null){GetComponent<Rigidbody>().freezeRotation = true;}}void LateUpdate(){if(playerPos != null){x += (float)(Input.GetAxis("Mouse X") * xSpeed * 0.02f);y -= (float)(Input.GetAxis("Mouse Y") * ySpeed * 0.02f);y = ClampAngle(y, yMinLimit, yMaxLimit);Quaternion rotation = Quaternion.Euler(y, x, 0);Vector3 position = rotation * (new Vector3(0.0f, heightOffset, -distance)) + playerPos.position;transform.rotation = rotation;transform.position = position;}}private float ClampAngle(float angle, float min, float max){if(angle < -360){angle += 360;}if(angle > 360){angle -= 360;}return Mathf.Clamp (angle, min, max);}}


原创粉丝点击