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); }
void PressurePlateListener(PressurePlateState oldState, PressurePlateState newState) { switch (newState) { case PressurePlateState.kDown: TryOpen(); break; case PressurePlateState.kUp: TryClose(true); break; } }
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); } } }
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); } } } }
public void PressurePlateListener(PressurePlateState oldState, PressurePlateState newState) { SetEnabled(newState != PressurePlateState.kDown); }