- Home /
transform.Rotate is rotating all axes, why?
I have been working on a helicopter and I have the first rotor spinning correctly, however the back rotor I have tried everything and I just can't get it to work.
My objective is to get Rotor2 to ONLY rotate on the X axis, although with what I have so far, all the axes spin. What am I not doing right? Why did Rotor 1 work perfectly on the Y axis, but rotor 2 not on the X axis, hmm?
transform.Rotate (0, spin * -0.01f, 0, Space.Self); // Rotor 1
Rotor2.transform.Rotate (spin * -0.01f, 0, 0, Space.Self); // Rotor 2
using UnityEngine;
using System.Collections;
public class NewEngine : MonoBehaviour {
public GameObject Rotor;
public GameObject Rotor2;
public float spin = 0;
public bool EngineOn;
public Rigidbody Player;
public AudioSource HeliStart;
public AudioSource HeliConstant;
public float HS = 1;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (HeliStart.pitch > 1) {
HeliStart.pitch = 1;
}
if (HeliStart.pitch < -1) {
HeliStart.pitch = -1;
}
if (Input.GetKeyDown (KeyCode.E)) {
EngineOn = !EngineOn;
}
if (EngineOn == true) {
spin += 0.5f;
transform.Rotate (0, spin * -0.01f, 0, Space.Self);
Rotor2.transform.Rotate (spin * -0.01f, 0, 0, Space.Self);
HeliStart.GetComponent<AudioSource> ().enabled = true;
HeliStart.pitch = 1;
Player.GetComponent<Rigidbody> ().mass = 1.25f; // Set the GO's mass to 5 via the Rigidbody.
if (!GameObject.Find ("Player").GetComponent <ShipControls> ().FuelConsume) {
{
GameObject.Find ("Player").GetComponent <ShipControls> ().FuelConsume = true;
}
}
Just reading the title, and skim$$anonymous$$g: trans.Rotate is your local rotation (imagine a child doing summersaults in a diagonal line. They are doing perfect local X rotations.) So if anything is tilted, a Rotate on X is also a rotate on global XYZ.
The Inspector shows global rotations. Try tilting an object and, by hand, using the spin tool to rotate on local X. Same thing happens.
Your answer
![](https://koobas.hobune.stream/wayback/20220613200416im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Flip over an object (smooth transition) 3 Answers
Creating the After Effects Wiggle expression to effect rotation in C# 1 Answer
slowly rotate a object *need quick fix* 0 Answers
Rotate a vector based on mouse x coordinates? 1 Answer
Player rotation 0 Answers