Quantcast
Channel: Questions in topic: "localeulerangles"
Viewing all articles
Browse latest Browse all 106

AddTorque stops working when model is vertical

$
0
0
I've created code for a rigidbody spaceship and it works perfectly unless the model angles vertically (X=270 or 90). When it hits that, the model still angles very slightly but snaps back into place after I let go of the button, like it's on a very tight rubber band. When this is happening, the Transform on the model doesn't show any change in rotation. Here's my code: var MaxSpeed = 50; function FixedUpdate () { if(Input.GetKey(KeyCode.RightArrow) == true) { rigidbody.AddTorque(Vector3.up); } else if(Input.GetKey(KeyCode.LeftArrow) == true) { rigidbody.AddTorque(Vector3.down); } if(Input.GetKey(KeyCode.UpArrow) == true) { rigidbody.AddRelativeTorque(Vector3.right); } else if(Input.GetKey(KeyCode.DownArrow) == true) { rigidbody.AddRelativeTorque(Vector3.left); } if(Input.GetKey(KeyCode.LeftShift) == true) { rigidbody.AddRelativeForce(Vector3.forward * 10); } vel = rigidbody.velocity.magnitude; if (rigidbody.velocity.magnitude >= MaxSpeed) { vel = MaxSpeed; } rigidbody.velocity = transform.forward * vel; transform.localEulerAngles.z = 0; } I've discovered that if I comment out transform.localEulerAngles.z = 0 then the problem goes away however I cannot see the reason for this. I need some way to constrain the z axis and doing that on the rigidbody doesn't work due to my use of AddTorque. If you know why the model freezes vertically or know of a better way to constrain the local z axis, please let me know. Thank you.

Viewing all articles
Browse latest Browse all 106

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>