private void OnValidate() { if (Application.isPlaying) { return; } if (this == null) { return; } if (showButtonEventObserverable != null) { showButtonEvent = showButtonEventObserverable.GetComponent <ISimpleObserverable>(); } else { showButtonEvent = null; } if (showButtonEvent == null) { showButtonEventObserverable = null; } else { showButtonEventObserverable = showButtonEvent as MonoBehaviour; } for (int i = 0; i < resettables.Length; i++) { if (resettables[i] != null) { var resettable = resettables[i].GetComponent <IResettable>(); if (resettable == null) { resettables[i] = null; } else { resettables[i] = resettable as MonoBehaviour; } } } }
private void Start() { renderers = GetComponentsInChildren <Renderer>(); colliders = GetComponentsInChildren <Collider>(); if (showButtonEventObserverable != null) { showButtonEvent = showButtonEventObserverable.GetComponent <ISimpleObserverable>(); } resettablesComponents = new IResettable[resettables.Length]; for (int i = 0; i < resettablesComponents.Length; i++) { resettablesComponents[i] = resettables[i].GetComponent <IResettable>(); } hasEvent = showButtonEvent != null || (showButtonEventObserverables != null && showButtonEventObserverables.Length > 0); if (showButtonEvent != null || (showButtonEventObserverables != null && showButtonEventObserverables.Length > 0)) { if (showButtonEvent != null) { showButtonEvent.AddListener(ShowButton); } if (showButtonEventObserverables != null && showButtonEventObserverables.Length > 0) { for (int i = 0; i < showButtonEventObserverables.Length; i++) { var showEvent = showButtonEventObserverables[i].GetComponent <ISimpleObserverable>(); if (showEvent != null) { showEvent.AddListener(ShowButton); } } } HideButton(); } else { // no hide } }