private void Update() { if (Mathf.Abs(closedYRotation - transform.rotation.eulerAngles.y) <= closedDelta) { if (!isClosed) { OnDoorClose?.Invoke(); isClosed = true; if (shakeCameraOnClose && impulseSource) { impulseSource.GenerateImpulse(); FMODUnity.RuntimeManager.PlayOneShot(DoorSlam, transform.position); } } } else { if (isClosed) { OnDoorOpen?.Invoke(); FMODUnity.RuntimeManager.PlayOneShot(DoorSqueak, transform.position); isClosed = false; } } }
public void SetDoorState(bool state) { if (state) { foreach (Biocrowds.Core.Agent agent in _agents) { agent.SetExitGoal(_doorExitPoint.position); } } else { OnDoorClose?.Invoke(); } _doorAnimator.SetBool("Open", state); }