我是Unity的初学者,并且在Unity中创建了3D应用程序。 对于旋转,我围绕3D模型旋转相机。 对于平移,如果我移动3D模型,则必须跟踪坐标(x,y,z)。但是,如果我移动相机,由于LookAt()是在rotate函数中实现的,因此它看起来不像是执行了平移手势(从旋转和平移中移动)。 有人可以建议解决此问题的方法吗?
答案 0 :(得分:0)
如果要平移对象,可以使用矢量数学来实现。
示例:
new Vector3 lookAt = ...;
new Vector3 offset = ...;
cameraTransform.LookAt(lookAt + offset);
如果要在平移和旋转运动之间进行切换,则可以使用状态机。
switch (state)
{
case CHANGEPAN:
// do something
break;
case CHANGEROT:
// do something
break;
}
在平移时,如果根本不想旋转摄像机,则需要对摄像机位置进行等效平移。您也可以使用矢量数学来实现,因为变换中的位置只是Vector3。