Files
3DBlobici-WorkingTitle/3D blobici/Assets/Prefabs/Scripts/DoorAnimation.cs

49 lines
1.4 KiB
C#
Raw Normal View History

using UnityEngine;
public class DoorAnimation : MonoBehaviour
{
[SerializeField] private GameObject door;
[SerializeField] private float openSpeed = 2.0f;
[SerializeField] private float closeSpeed = 2.0f;
private bool isOpen = false;
private Vector3 closedPosition;
private Vector3 openPosition;
void Start()
{
closedPosition = door.transform.position;
openPosition = new Vector3(door.transform.position.x, door.transform.position.y - 4.6f, door.transform.position.z);
}
public void ToggleDoor()
{
if (isOpen)
{
StartCoroutine(CloseDoor());
}
else
{
StartCoroutine(OpenDoor());
}
}
private System.Collections.IEnumerator OpenDoor()
{
while (Vector3.Distance(door.transform.position, openPosition) > 0.01f)
{
door.transform.position = Vector3.MoveTowards(door.transform.position, openPosition, openSpeed * Time.deltaTime);
yield return null;
}
isOpen = true;
}
private System.Collections.IEnumerator CloseDoor()
{
while (Vector3.Distance(door.transform.position, closedPosition) > 0.01f)
{
door.transform.position = Vector3.MoveTowards(door.transform.position, closedPosition, closeSpeed * Time.deltaTime);
yield return null;
}
isOpen = false;
}
}