如何使相机与物体具有相同的旋转但具有偏移量(Unity)
How to make camera have same rotation as an object but with an offset (Unity)
所以我有车和相机,到目前为止这里是相机脚本:
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);
}
}
这使得相机可以随着汽车平稳移动,但现在我希望相机也具有与汽车相同的旋转,但具有起始偏移。
您可以像
这样“相同”地存储原始增量旋转
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);
}
所以我有车和相机,到目前为止这里是相机脚本:
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);
}
}
这使得相机可以随着汽车平稳移动,但现在我希望相机也具有与汽车相同的旋转,但具有起始偏移。
您可以像
这样“相同”地存储原始增量旋转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);
}