【问题标题】:How to do panning in Unity?如何在 Unity 中进行平移?
【发布时间】:2018-07-13 21:16:39
【问题描述】:

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

【问题讨论】:

    标签: unity3d rotation pan


    【解决方案1】:

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

    例子:

    new Vector3 lookAt = ...;
    new Vector3 offset = ...;
    
    cameraTransform.LookAt(lookAt + offset);
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-27
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      相关资源
      最近更新 更多