using System; using System.Collections.Generic; using UnityEngine; public class keyHolder : MonoBehaviour { public event EventHandler OnKeysChanged; public bool AllKeys = false; private List keyList; private void Awake() { keyList = new List(); } public List GetKeyList() { return keyList; } public void AddKey(Key.KeyType keyType) { keyList.Add(keyType); OnKeysChanged?.Invoke(this, EventArgs.Empty); } public void RemoveKey(Key.KeyType keyType) { keyList.Remove(keyType); OnKeysChanged?.Invoke(this, EventArgs.Empty); } public bool ContainsKey(Key.KeyType keyType) { return keyList.Contains(keyType); } private void OnTriggerEnter(Collider collider) { Key key = collider.GetComponent(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } } }