如何在Unity中平移?

时间:2018-07-13 13:07:32

标签: unity3d rotation pan

我是Unity的初学者,并且在Unity中创建了3D应用程序。 对于旋转,我围绕3D模型旋转相机。 对于平移,如果我移动3D模型,则必须跟踪坐标(x,y,z)。但是,如果我移动相机,由于LookAt()是在rotate函数中实现的,因此它看起来不像是执行了平移手势(从旋转和平移中移动)。 有人可以建议解决此问题的方法吗?

1 个答案:

答案 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。