I have a cup which has some objects inside. I want to rotate the cup from a script so it lets the objects fall. I must use Rigidbody.MoveRotate to avoid the objects pass through the cup’s mesh while it’s moving.

So default cup’s rotation (euler) is (0,0,0) and it must rotate on both x and y axis to (135,70,0). The problem is how to know when the cup has reached the correct rotation so I can stop MoveRotation to keep rotating forever.

Here is my code:

```
void Update () {
Vector3 rota = new Vector3(135, 70, 0);
Quaternion rotationDelta = Quaternion.Euler(rota * Time.deltaTime);
Rigidbody rigid = GetComponent<Rigidbody>();
rigid.MoveRotation(rigid.rotation * rotationDelta);
}
```

I have tried to check:

```
if (Quaternion.Angle(transform.rotation, Quaternion.Euler(rota)) > angleThreshold)
```

But it won’t work because in real time Euler angles of the object are so messed up by the quaternion rotation (because I’m rotating 2 axis at once and the rotation on 1 axis is actually moving the other axis as it’s rotating and viceversa, that’s why unity uses quaternions in the first place)

Any help?