Hi
So I have a door prefab that I made which consists of a parent object and its 2 children, the left and right door, my intention is to create an elevator door.
I’m using a script in unity to animate the sliding doors with the following line of code.
LeftDoor.transform.Translate(Vector3.left * DoorSpeed * Time.deltaTime);
The problem occurs when I change the rotation of the door, since I only want to move the door 2 world units I check the x axis and stop when that position is equal to the original position of the door + 2. But that’s not going to work if I rotate the door then I might have to check the Z axis instead and if I rotate the door 35 degrees or something else that’s not entirely straight it’s not going to work at all.
I could just do the animation in Blender but I feel that it’s a lot more flexible to do these simple animations in Unity.
I’m looking for a way to move a transform in unity a specified number of world units regardless of its rotation.
Thanks
Well...I was afraid I was reading the question incorrectly... So try this: var openPos : Vector3; var closedPos : Vector3; function Start() { closedPos = transform.position; openPos = transform.position - 2 * transform.right; } function Update() { if((transform.position - openPos).magnitude > 0.1) { transform.Translate((openPos - closedPos) * Time.deltaTime); } }
– Piflik