Quantcast
Channel: Latest Questions by alexkaskasoli
Viewing all articles
Browse latest Browse all 56

Can't Translate and Rotate at same time

$
0
0
I'm writing my own character controller that uses a rigidbody. I'm getting stuck on something weird. This is my code (variable declarations not included): void Start() { myNormal = transform.up; rigidbody.freezeRotation = true; // Distance between center of Character Position and the Ground var collider = gameObject.collider as CapsuleCollider; distGround = collider.bounds.extents.y - collider.center.y; } void FixedUpdate() { // Appliy Gravity rigidbody.AddForce(-1 * gravity * this.rigidbody.mass * myNormal); } void Update() { transform.Translate(Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime, 0, Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime); transform.Rotate(0, Input.GetAxis("Mouse X") * turnSpeed * Time.deltaTime, 0); camera.transform.Rotate(-1 * Input.GetAxis("Mouse Y") * turnSpeed * Time.deltaTime, 0, 0); } The update function handles the character translation and rotation. For vertical rotation (looking up and down) only the camera rotates. This is because I plan on using some weird gravity effects latter on and need the character to stay vertical with the floor. My problem with this script so far is that I can move the character position with WASD, and look around with the Mouse, but I can't do both at the same time. While my character is moving, the rotation is frozen. How can I fix this?

Viewing all articles
Browse latest Browse all 56

Trending Articles



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