- Home /
How do I rotate on a new pivot point with RotateAround?
I'm struggling to get Transform.RotateAround to work properly and am wondering where I'm going wrong.
The idea is quite simple. I have an object that floats from one platform to another above it. Once it collides with the top platform, I need to change its pivot point so that it rotates from the top of the object. Well, actually, it should rotate from one of the top corners.
I've tried to use Tranform.RotateAround but I'm having major problems trying to get it to do this. The results I'm getting are way off what I want and are somewhat erratic. What I have at the moment is this:
// Update is called once per frame
void Update () {
if (isCollided && !isStopped)
{
// Move the object up
transform.Translate(Vector3.up * Time.deltaTime);
}
if (isStopped)
{
// Object has hit the bottom of the top platform. From what direction did the original
// collision come from?
if (collisionDirection == CollisionDirection.Left)
{
transform.RotateAround(transform.position - Vector3.up, Vector3.back , 50 * Time.deltaTime);
}
}
}
I'm pretty new to Unity and have never done any 3D work so I'm not too sure about the coordinates. That's probably where I'm going wrong?
Answer by zombience · Aug 09, 2013 at 09:50 PM
if you'd like it to pivot, like an orbit, you need to give it a fixed point to rotate around. currently, you hvae the RotateAround() function referencing the object which is being rotated. This means that as it rotates, it moves position, and so does the pivot reference, so it will end up just spinning off into space. you need to give it a fixed transform or a fixed Vector3 point to have it rotate around. Something that does not change while the object is rotating.
Answer by SyntaxTerror · Aug 10, 2013 at 02:07 PM
Ah - of course. That makes sense and I've now managed to get that part working. Thanks.
Your answer
Follow this Question
Related Questions
rotate around character 1 Answer
Transform.RotateAround over specific length of time 1 Answer
rotate around character 2 Answers
Snap the rotation of object 2 Answers
How do I rotate an object around another to have its opposite ? 0 Answers