如何使相机具有与对象相同的旋转但具有偏移(Unity)
Posted
技术标签:
【中文标题】如何使相机具有与对象相同的旋转但具有偏移(Unity)【英文标题】:How to make camera have same rotation as an object but with an offset (Unity) 【发布时间】:2021-08-29 15:20:37 【问题描述】:所以我有一辆汽车和一个相机,到目前为止,这里是相机脚本:
public GameObject car;
public Vector3 offset;
void Start()
offset = transform.position - car.transform.position;
// Update is called once per frame
void FixedUpdate()
transform.position = transform.position = Vector3.Lerp(transform.position, car.transform.position + offset, 0.8f);
这使相机随着汽车平滑移动,但现在我希望相机也具有与汽车相同的旋转,但具有起始偏移量。
【问题讨论】:
我建议您为此使用 Cinemachine。您可以使用 VirtualCamera 进行非常舒适的设置。平滑过渡、距离跟踪、旋转跟踪等。一切都很简单。 unity.com/unity/features/editor/art-and-design/cinemachine 【参考方案1】:您可以以“相同”的方式存储原始增量旋转,例如
Quaternion offsetRotation;
private void Start ()
offset = transform.position - car.transform.position;
offsetRotation = transform.rotation * Quaternion.Inverse(car.transform.rotation);
后来
void FixedUpdate()
transform.position = Vector3.Lerp(transform.position, car.transform.position + offset, 0.8f);
transform.rotation = Quaternion.Slerp(transform.rotation, car.transform.rotation * offsetRotation, 0.8f);
【讨论】:
以上是关于如何使相机具有与对象相同的旋转但具有偏移(Unity)的主要内容,如果未能解决你的问题,请参考以下文章