我有一个简单的Unity3d脚本,它应该将GameObject移动到某个点并从上面向下看这个点。
我的脚本部分正常工作; GameObject正在移动到正确的点,但它不会从上面向下看。所以轮换是错误的。 GameObject翻转过来。
你能帮助我让我的GameObject直接向下看吗?
public class MoveTo : MonoBehaviour {
private Vector3 targetPosition = new Vector3(5, 10, 5);
private Quaternion targetRotation = new Quaternion(90, 0, 0, 0);
private float speed = 6f;
void LateUpdate () {
transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * speed);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * speed);
}
}
答案 0 :(得分:0)
Quaternion.Slerp采取"开始轮换"作为第一个参数。在您的代码中,transform.rotation
每次执行LateUpdate()
时都会更新。
您可以将原始旋转(在应用任何旋转之前)保存为变量originalRtn
,并按transform.rotation = Quaternion.Slerp(originRtn, targetRotation, Time.deltaTime * speed);
更新旋转。