首页 > 解决方案 > 如何在 Unity 中进行平移?

问题描述

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

标签: unity3drotationpan

解决方案


如果要平移对象,可以使用矢量数学来实现。

例子:

new Vector3 lookAt = ...;
new Vector3 offset = ...;

cameraTransform.LookAt(lookAt + offset);

如果您想在平移和旋转运动之间进行切换,您可以使用状态机。

switch (state)
{
    case CHANGEPAN:
        // do something
        break;
    case CHANGEROT:
        // do something
        break;
}

平移时,如果您根本不想旋转相机,则需要对相机位置进行等效平移。你也可以用矢量数学来做到这一点,因为变换中的位置只是一个 Vector3。


推荐阅读