- Home /
Rotating an object around 2 axis at the same time
Hey. So I have this problem where I want to rotate a player around pitch and yaw at the same time, but when I do so, it kind of glitches. What i want to do is that I want a player to be able to do flips while twisting at the same time. I have spent hours trying to figure out different ways of doing so, but nothing seems to work.
Here is my code that glitches when i press two buttons at the same time:
public class Rotating_Done : MonoBehaviour {
float angle = 180f;
Vector3 axis = Vector3.up;
[SerializeField]
float speed = 1000f;
[SerializeField]
bool readyForNewTwist;
[SerializeField]
float tuckSpeed;
IEnumerator currenteRotationCoroutine;
public Transform rotateY;
void Start()
{
readyForNewTwist = true;
}
void Update()
{
if(Input.GetKey(KeyCode.E)){
transform.Rotate(transform.right, tuckSpeed *0.1f * Time.deltaTime, Space.World);
}
if(Input.GetKeyDown(KeyCode.Space)){
if(readyForNewTwist){
currenteRotationCoroutine = Rotate(angle, axis, speed);
StartCoroutine(currenteRotationCoroutine);
}
}
}
IEnumerator Rotate(float angle, Vector3 axis, float speed){
//Rotates the player 180 degrees.
Quaternion dest = Quaternion.AngleAxis (angle, axis) * rotateY.rotation;
while(rotateY.rotation != dest){
rotateY.rotation = Quaternion.RotateTowards(rotateY.rotation, dest, speed * Time.deltaTime);
readyForNewTwist = false;
yield return null;
}
if(rotateY.rotation == dest){
readyForNewTwist = true;
}
}
Are you using 2 transforms for your 2 different rotational axis? I see transform and rotateY... is rotateY a child object of transform? If so, have you tried using rotateY.localRotation instead of rotateY.rotation?
I'll just try to do that. I have tried rotating though the same transform but not with this code.
Ok, I tried, but it still didn't work. As soon as i press the other button to twist, the flipping stops...
Can you reply with your updated code?
Your answer
Follow this Question
Related Questions
Creating a multiple part turret what locks onto certain axis. 4 Answers
Unity Simulate Local Rotation 0 Answers
"Free" rotation about a sphere 0 Answers
How would I interpret angular displacement from target rotation to max out at 180°? 3 Answers
How to rotate on one axis while keeping the other axes open to be rotated by other scripts? 1 Answer