如何在统一 3d 中围绕其中心点旋转 3d 游戏对象。
问问题
16983 次
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
旋转对象的两种常用方法是
变换中的旋转属性。使用这个,您可以设置目标对象旋转的精确坐标。但是,如果要制作动画,则必须自己管理平滑度,并且通过四元数类型给出值。我建议使用静态方法Quaternion.Euler,这样您就可以在 X、Y、Z 中传递值。下面的示例将对象设置为在 Y 轴上顺时针旋转 90 度:
transform.rotation = Quaternion.Euler (0, 90, 0);
第二种方法在相同的变换属性中使用旋转方法。此方法允许您传递对象旋转的度数,并且已经接受 X、Y 和 Z 坐标而不是四元数。下面的示例将对象在 Y 轴上顺时针旋转 1 度:
transform.Rotate (0, 1, 0);
为了更好地理解这两种方法之间的区别,如果您在 Update 方法中使用第一种方法,您将看到对象在 Y 轴上静态旋转了 90 度。更新中使用的第二个示例将使对象在 Y 轴上顺时针旋转(太快)。
于 2015-08-27T20:02:05.660 回答
-1
于 2012-09-26T07:02:36.740 回答