private void Start() { if (panelEnabledObject) { panelEnabledObjectCanvasGroup = panelEnabledObject.GetComponent <CanvasGroup>(); panelEnabledObjectImage = panelEnabledObject.GetComponent <Image>(); if (panelEnabledObjectImage) { panelEnabledObjectImageVisibleColor = panelEnabledObjectImageInvisibleColor = panelEnabledObjectImage.color; panelEnabledObjectImageInvisibleColor.a = 0; } } if (panelDisabledObject) { panelDisabledObjectCanvasGroup = panelDisabledObject.GetComponent <CanvasGroup>(); panelDisabledObjectImage = panelDisabledObject.GetComponent <Image>(); if (panelDisabledObjectImage) { panelDisabledObjectImageVisibleColor = panelDisabledObjectImageInvisibleColor = panelDisabledObjectImage.color; panelDisabledObjectImageInvisibleColor.a = 0; } } if (powerSourceObject) { powerSource = powerSourceObject.GetComponent <PowerSource>(); isPowered = powerSource.IsPowered(); if (panelEnabledObjectCanvasGroup) { panelEnabledObjectCanvasGroup.alpha = powerSource.IsPowered() ? 1 : 0; Debug.Log(this.GetType() + " is " + (powerSource.IsPowered() ? "powered" : "not powered")); Debug.Log("panelEnabledObjectCanvasGroup.alpha = " + (panelEnabledObjectCanvasGroup.alpha)); } if (panelDisabledObjectCanvasGroup) { panelDisabledObjectCanvasGroup.alpha = powerSource.IsPowered() ? 0 : 1; Debug.Log("panelDisabledObjectCanvasGroup.alpha = " + (panelDisabledObjectCanvasGroup.alpha)); } if (panelEnabledObjectImage) { panelEnabledObjectImage.color = powerSource.IsPowered() ? panelEnabledObjectImageVisibleColor : panelEnabledObjectImageInvisibleColor; } if (panelDisabledObjectImage) { panelDisabledObjectImage.color = powerSource.IsPowered() ? panelDisabledObjectImageInvisibleColor : panelDisabledObjectImageVisibleColor; } } if (!powerSourceObject || powerSource == null) { Debug.LogError("Power source has not been assigned for this system. System " + name + " will be disabled.", this); gameObject.SetActive(false); } audioSource = GetComponent <AudioSource>(); currentParameter = startingParameter; dialogue = (DialogueManager)FindObjectOfType(typeof(DialogueManager)); StartMe(); }
void CheckPower() { if (powerSource == null) { return; } const int transitionDuration = 1; if (isPowered != powerSource.IsPowered()) // If there's been a change { isPowered = powerSource.IsPowered(); animatingPanelColor = true; panelTransitionPercent = 1 - panelTransitionPercent; } // "#00DAFF" : "#ABABAB" if (animatingPanelColor) { panelTransitionPercent += Time.deltaTime / transitionDuration; if (panelTransitionPercent >= 1) { animatingPanelColor = false; panelTransitionPercent = 1; } if (panelEnabledObjectCanvasGroup) { panelEnabledObjectCanvasGroup.alpha = Mathf.Lerp( isPowered ? 0 : 1, isPowered ? 1 : 0, panelTransitionPercent ); } if (panelDisabledObjectCanvasGroup) { panelDisabledObjectCanvasGroup.alpha = Mathf.Lerp( isPowered ? 1 : 0, isPowered ? 0 : 1, panelTransitionPercent ); } if (panelEnabledObjectImage) { panelEnabledObjectImage.color = Color.Lerp( isPowered ? panelEnabledObjectImageInvisibleColor : panelEnabledObjectImageVisibleColor, isPowered ? panelEnabledObjectImageVisibleColor : panelEnabledObjectImageInvisibleColor, panelTransitionPercent ); } if (panelDisabledObjectImage) { panelDisabledObjectImage.color = Color.Lerp( isPowered ? panelDisabledObjectImageVisibleColor : panelDisabledObjectImageInvisibleColor, isPowered ? panelDisabledObjectImageInvisibleColor : panelDisabledObjectImageVisibleColor, panelTransitionPercent ); } } if (audioSource) { audioSource.enabled = isPowered; } }