0

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

4

3 回答 3

4

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

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

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

其中rotationVector 是您的旋转轴(Vector3)

于 2020-11-16T20:00:48.727 回答
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 轴上顺时针旋转(太快)。

于 2015-08-27T20:02:05.660 回答
-1

采用

变换旋转

在此处查找示例/文档: Unity 脚本参考

于 2012-09-26T07:02:36.740 回答