// Update is called once per frame void Update () { switch(state) { case EState.Opening: if (Time.time - startTime < targetTime) { Open(); } else { state = EState.Id; isOpen = true; } break; case EState.Closing: if (Time.time - startTime < targetTime) { Close(); } else { state = EState.Id; isOpen = false; } break; case EState.Id: break; } }
public void OnSwitch() { if (state == EState.Id) { startTime = Time.time; startingPosition = transform.position; if (isOpen) { state = EState.Closing; } else { state = EState.Opening; } } }