示例#1
0
 private void FixedUpdate()
 {
     state = ((_requiredSwitch != null && _requiredSwitch.isOn) || _requiredSwitch == null) ?
             ((state != PressurePlateState.Inactive) ? state : PressurePlateState.Idle) : PressurePlateState.Inactive;
     if (state != PressurePlateState.Inactive)
     {
         Collider[] _hits = Physics.OverlapSphere(transform.position + new Vector3(0f, _triggerRadius, 0f), _triggerRadius, LayerMask.GetMask("Bot"));
         state = (_hits.Length > 0) ? PressurePlateState.Pressed : PressurePlateState.Idle;
     }
     Debug.DrawLine(transform.position + new Vector3(0f, _triggerRadius, 0f), transform.position + new Vector3(0f, _triggerRadius * 2f, 0f), Color.red, 10f);
     _rend.material.color = (state == PressurePlateState.Pressed) ? Color.green : ((state == PressurePlateState.Idle) ? Color.red : Color.grey);
 }
示例#2
0
    void PressurePlateListener(PressurePlateState oldState, PressurePlateState newState)
    {
        switch (newState)
        {
        case PressurePlateState.kDown:
            TryOpen();
            break;

        case PressurePlateState.kUp:
            TryClose(true);
            break;
        }
    }
示例#3
0
    public void TryPress()
    {
        if (state_ == PressurePlateState.kUp)
        {
            state_ = PressurePlateState.kDown;
            animator_.SetInteger("State", (int)PressurePlateState.kDown);

            pressAudio.Play();

            if (PressurePlateEvent != null)
            {
                PressurePlateEvent.Invoke(PressurePlateState.kUp, PressurePlateState.kDown);
            }
        }
    }
示例#4
0
    public void TryLift()
    {
        if (timePressedAfterReleased == -1 || timeElapsed_ > timePressedAfterReleased)
        {
            if (objectsOnTop_ == 0)
            {
                state_ = PressurePlateState.kUp;
                animator_.SetInteger("State", (int)PressurePlateState.kUp);

                releaseAudio.Play();

                if (PressurePlateEvent != null)
                {
                    PressurePlateEvent.Invoke(PressurePlateState.kDown, PressurePlateState.kUp);
                }
            }
        }
    }
示例#5
0
 public void PressurePlateListener(PressurePlateState oldState, PressurePlateState newState)
 {
     SetEnabled(newState != PressurePlateState.kDown);
 }