Esempio n. 1
0
        private IEnumerator Routine_Hit()
        {
            Color   s1 = _BrokenRenderer.material.color;
            Color   s2 = _LightTexture.material.color;
            Color   e  = new Color(1.0f, 1.0f, 1.0f, 0.0f);
            Vector3 ms = _MaskTransform.localScale;

            for (float t = 0; t < _RepairSpeed; t += Time.deltaTime)
            {
                float dt = t / _RepairSpeed;
                if (_MaskTransform)
                {
                    Vector3 p1 = Vector3.Lerp(ms, Vector3.zero, dt);
                    _MaskTransform.localScale = Vector3.Lerp(ms, p1, dt);
                }
                _BrokenRenderer.material.color = Color.Lerp(s1, e, dt);
                _LightTexture.material.color   = Color.Lerp(s2, e, dt);
                yield return(null);
            }
            _BrokenRenderer.material.color = e;
            _LightTexture.material.color   = e;
            _MaskTransform.gameObject.SetActive(false);

            Main_GameManager.RepairCiruit();

            if (_EventTarget)
            {
                _EventTarget.StartEvent();
            }
        }
        public override bool Tap(Main_PlayerCharacter chara)
        {
            if (_Character == chara)
            {
                base.Tap(chara);

                if (isOn)
                {
                    if (canOff)
                    {
                        if (_Event_Off)
                        {
                            _Event_Off.StartEvent();
                        }
                        if (_Obj_Off)
                        {
                            _Obj_Off.SetActive(true);
                        }
                        if (_Obj_On)
                        {
                            _Obj_On.SetActive(false);
                        }
                        isOn = false;
                    }
                }
                else
                {
                    if (_Event_On)
                    {
                        _Event_On.StartEvent();
                    }
                    if (_Obj_Off)
                    {
                        _Obj_Off.SetActive(false);
                    }
                    if (_Obj_On)
                    {
                        _Obj_On.SetActive(true);
                    }
                    isOn = true;
                    if (!canOff)
                    {
                        _Sprite.gameObject.SetActive(false);
                    }
                }
            }

            return(true);
        }