Unity3D實現控制攝像機在一定的高度跟隨目標物體移動
阿新 • • 發佈:2018-12-09
一、控制攝像機跟隨目標物體移動的控制指令碼如下:
/*** * * 核心層: 相機跟隨指令碼 (固定角度) * * * * * * */ using UnityEngine; using System.Collections; namespace kernal { public class CameraFollow : MonoBehaviour { // The target we are following public Transform target = null; // The distance in the x-z plane to the target public float distance = 6.0f; //原來 6 // the height we want the camera to be above the target public float height = 8.0f;//原來 8 // How much we public float heightDamping = 4.0f; public float rotationDamping = 0.0f; float a = 2.0f; void Start() { //需要給攝像機跟隨的目標物體新增Tag標籤,這裡的標籤命名為“Player” target = GameObject.FindGameObjectWithTag("Player").transform; } // Update is called once per frame(每隔兩秒鐘確立一次目標) void Update() { a -= Time.deltaTime; if (a <= 0) { target = GameObject.FindGameObjectWithTag("Player").transform; a = 2.0f; } } void LateUpdate() { // Early out if we don't have a target if (!target) return; // Calculate the current rotation angles var wantedRotationAngle = target.eulerAngles.y; var wantedHeight = target.position.y + height; var currentRotationAngle = transform.eulerAngles.y; var currentHeight = transform.position.y; // Damp the rotation around the y-axis currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime); // Damp the height currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime); // Convert the angle into a rotation Quaternion currentRotation = Quaternion.Euler(0, currentRotationAngle, 0); // Set the position of the camera on the x-z plane to: // distance meters behind the target transform.position = target.position; transform.position -= currentRotation * Vector3.forward * distance; // Set the height of the camera //transform.position.y = currentHeight; transform.position = new Vector3(transform.position.x, currentHeight, transform.position.z); // Always look at the target transform.LookAt(target); // Use this for initialization } }//class_end }
二、將該控制指令碼新增給主攝像機上,同時給攝像機需要跟隨的目標物體新增Tag標籤為“Player”
三、執行程式,控制目標物體移動,則攝像機也跟隨目標物體移動。