- Home /
Make a rolling sphere turn around in one frame
I have a sphere as my main player object, which is able to roll around, controlled by the w, a, s, and d keys. I've built a tunnel which the ball rolls through and my goal is to have the ball roll down the tunnel and at the other end they are actually back where they started. Kind of like a mental trick. Roll down one way, and you end up rolling towards the same end. I don't want it to be visible either. So far, I've been working on trying to rotate the camera around 180 degrees, and reversing the balls velocity in the direction of the tunnel, in my case it is on the z axis. My problem is that the balls rotation isn't smooth. You can see the ball start rolling the other direction, and my idea is that it shouldn't look like anything happened. Just reverse the direction of the ball and camera. If there's another way to accomplish this that would be awesome. Or if I could rotate the ball perhaps keeping the velocity that would be ok but I can't find a good way to do it.This is the code I'm using to move the ball around but like I said, you can still see rotation slowing down, then going the other way
Vector3 tempV = player.rigidbody.velocity;
tempV.z *= -1;
player.rigidbody.velocity = tempV;
float distance = Mathf.Abs(gameObject.transform.position.x) - Mathf.Abs(player.transform.position.x);
Vector3 newPos = player.transform.position;
newPos.x += distance * 2;
player.transform.position = newPos;
cameraRotator.Rotate(new Vector3(0.0f, 1.0f, 0.0f) * 180);
Answer by Owen-Reynolds · Dec 09, 2014 at 04:24 AM
Not tested, but player.rigidbody.angularVelocity *= -1; should do something interesting. The angularVelocity part works -- it's just the times -1 I'm not sure about.
It's the same idea as your first two lines, flipping velocity. I think, if the ball is mostly rolling along the Z-axis, that angularVelocity is mostly on X (it's spinning around X.)
So I combined what you said with still reversing the velocity, I don't know why I thought not to use it, and it works perfectly. Thank you!
Your answer
Follow this Question
Related Questions
Rotating sphere with rigidbody attached 1 Answer
Make character rotate/roll 0 Answers
Slip sphere with out rotating 0 Answers
Sphere on cube floor doesn't rotate after too much delay 1 Answer