示例#1
0
    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();
    }
示例#2
0
    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;
        }
    }