【问题标题】:Rotate an object around its center point in unity 3d在统一 3d 中围绕其中心点旋转对象
【发布时间】:2020-11-17 04:00:48
【问题描述】:

如何在统一 3d 中围绕其中心点旋转 3d 游戏对象。

【问题讨论】:

标签: unity3d


【解决方案1】:

只需使用渲染器中的 bounds.center

Vector3 position = myGameObject.GetComponent<Renderer>().bounds.center;

myGameObject.transform.RotateAround(position, rotationVector, degreesPerSecond * Time.deltaTime);

rotationVector 是你的旋转轴 (Vector3)

【讨论】:

  • 你是我的书/游戏的赢家。现实世界的解决方案。
【解决方案2】:

旋转对象的两种常用方法是

  1. 变换中的旋转属性。使用这个,您可以设置目标对象旋转的精确坐标。但是,如果要制作动画,则必须自己管理平滑度,并且通过四元数类型给出值。我建议使用静态方法Quaternion.Euler,这样您就可以在 X、Y、Z 中传递值。下面的示例将对象设置为在 Y 轴上顺时针旋转 90 度:

    transform.rotation = Quaternion.Euler (0, 90, 0);
    
  2. 第二种方法在相同的变换属性中使用旋转方法。此方法允许您传递对象旋转的度数,并且已经接受 X、Y 和 Z 坐标而不是四元数。 下面的示例将对象沿 Y 轴顺时针旋转 1 度:

    transform.Rotate (0, 1, 0);
    

为了更好地理解这两种方法之间的区别,如果您在 Update 方法中使用第一种方法,您将看到对象在 Y 轴上静态旋转 90 度。更新中使用的第二个示例将使对象在 Y 轴上顺时针旋转(太快)。

【讨论】:

    【解决方案3】:

    使用

    变换.旋转

    在此处查找示例/文档: Unity Script Reference

    【讨论】:

    • 是在真正的中心点附近吗?我认为没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2018-02-17
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多