团结|按指定角度(0~360度)旋转gameObject

时间:2015-05-20 08:09:02

标签: c# unity3d rotation angle quaternions

我正在努力用操纵杆旋转gameObject。操纵杆将json数据包含的角度值发送给gameObject。 gameOjbect在接收Jsondata时应该自行旋转。但是,我想知道如何将它按角度(0到360度)一致旋转,因为我所知道的是在下面使用(Vector3)位置。

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

总之,我想知道的是以角度旋转gameObject。

3 个答案:

答案 0 :(得分:5)

使用RotateAround

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

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

无论如何,您可能会在Transform文档中找到其他有用的内容。

答案 1 :(得分:3)

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);

答案 2 :(得分:0)

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

这是一个实例化随机角度旋转'随机旋转'旋转的射弹的示例。角度。

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)));