public void AttemptCollect(KeyCollector collector) { if (!m_Collected) { Collect(collector); } }
void Collect(KeyCollector collector) { m_Collected = true; collector.Collected(this); Destroy(gameObject); }
/// <summary> /// Tries to open the door if enough keys have been collected /// </summary> /// <param name="keyCollector"></param> public bool TryOpenDoor(KeyCollector keyCollector) { if (!doorModel.IsOpened) { doorModel.TryOpenDoor(keyCollector); return(true); } return(false); }
/// <summary> /// If enough keys have been collected the door opens /// </summary> /// <param name="collecter"></param> public bool TryOpenDoor(KeyCollector collecter) { if (collecter.KeyAmount >= KeyAmountNeeded) { Opened?.Invoke(); IsOpened = true; return(true); } return(false); }
private void OnTriggerEnter(Collider other) { KeyCollector key = other.gameObject.GetComponent <KeyCollector>(); if (key) { if (key.GiveKey()) { OnKeyPickup(this); Destroy(this.gameObject); } } }
// Gets executed when the door opens private void OnTriggerEnter(Collider other) { if (IsLocked) { // if the door is locked, check if collided entity has a KeyCollector KeyCollector _collector = other.gameObject.GetComponent <KeyCollector>(); if (_collector) { // try unlocking the door if (_collector.UnlockDoor()) { UnlockDoor(); // if that entity has a key then open the door } } } }
void Start() { collector = GameObject.FindGameObjectWithTag("Player").GetComponent <KeyCollector>(); }