using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class HumanInteractor : MonoBehaviour { public GameObject[] showingObjects; public UnityEvent OnInteraction; public UnityEvent OnClose; private bool showing; [SerializeField] public bool Showing => showing; void Start() { Selector.OnSelectedChanged.AddListener(OnSelectionChanged); Refresh(); } void OnSelectionChanged(){ Toggle(Selector.selectedHuman==this); } public void Toggle(){ showing = !showing; Refresh(); } public void Toggle(bool value){ showing = value; Refresh(); } public void Refresh(){ foreach(GameObject go in showingObjects){ go.SetActive(showing); } if(!showing){ OnClose.Invoke(); }else{ OnInteraction.Invoke(); } } }