UnityStandardAssets之SmoothFollow
Posted 水榭阁主
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityStandardAssets之SmoothFollow相关的知识,希望对你有一定的参考价值。
using UnityEngine; namespace UnityStandardAssets.Utility { public class SmoothFollow : MonoBehaviour { // The target we are following [SerializeField] private Transform target; // The distance in the x-z plane to the target [SerializeField] private float distance = 10.0f; // the height we want the camera to be above the target [SerializeField] private float height = 5.0f; [SerializeField] private float rotationDamping; [SerializeField] private float heightDamping; // Use this for initialization void Start() { } // Update is called once per frame 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 var 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 = new Vector3(transform.position.x ,currentHeight , transform.position.z); // Always look at the target transform.LookAt(target); } } }
以上是关于UnityStandardAssets之SmoothFollow的主要内容,如果未能解决你的问题,请参考以下文章