Beispiel #1
0
    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;
            }
        }
    }
Beispiel #2
0
    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);
    }