团结 |按指定角度(0~360度)旋转游戏对象

Unity | Rotate the gameObject by specified angle (0~360 degree)

我很难用操纵杆旋转游戏对象。游戏杆将 json 数据包含的角度值发送到游戏对象。 gameOjbect 应该在收到 Jsondata 时自行旋转。但是,我想知道如何统一旋转它的角度(0 到 360 度),因为我只知道使用下面的 (Vector3) 位置。

Quaternion.LookRotation
public static Quaternion LookRotation(Vector3 forward, 
                                      Vector3 upwards = Vector3.up);

总而言之,我只想知道将游戏对象旋转角度。

transform.eulerAngles = new Vector3(90, 0, 0);

将您的游戏对象沿 x 轴旋转 90 度。

或者用

也可以顺畅旋转
Vector3 destination = new Vector3(90,0,0);
transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles, 
                                     destination, 
                                     Time.deltaTime);

使用RotateAround.

// Rotate around world y.
transform.RotateAround(transform.position, Vector3.up, angle);

// Rotate around local y.
transform.RotateAround(transform.position, transform.up, angle);

您可能会在 Transform 文档中找到其他有用的东西。

给正在阅读本文的人的快速提示。 transform.RotateAround 在 Unity 的最新版本中已过时。需要使用 transform.Rotate(Vector3 eulerAngles) 代替。

这里是实例化以 'randomAngleRotation' 角度旋转的射弹的示例。

Projectile newProjectile = Instantiate<Projectile> (projectile,projectileSpawn [i].position, projectileSpawn [i].rotation) as Projectile;
newProjectile.transform.Rotate(new Vector3(Random.Range(randomAngleRotation, randomAngleRotation), Random.Range(randomAngleRotation, randomAngleRotation)));