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