// Update is called once per frame void Update() { if (!_FadeIn) { FadeIn(); } if (_FadeOut) { FadeOut(); } _LightPosition = _LightSource._LightPosition; if (_LightPosition == LightSource.LightSourcePosition.Center) { _Sun.rectTransform.position = _Positions[0].position; } if (_LightPosition == LightSource.LightSourcePosition.Left) { _Sun.rectTransform.position = _Positions[1].position; } if (_LightPosition == LightSource.LightSourcePosition.Right) { _Sun.rectTransform.position = _Positions[2].position; } if (_LightPosition == LightSource.LightSourcePosition.Down) { _Sun.rectTransform.position = _Positions[3].position; } if (_LightPosition == LightSource.LightSourcePosition.Up) { _Sun.rectTransform.position = _Positions[4].position; } }
public void Update() { SetLevel(); _LightPosition = _LightSourceScript._LightPosition; Vector3 lightDirection = GetLightDirection(_LightSource, _Ground); DecideShadowCastPosition(_LightSource); bool isGround = true; if (_ShadowFirstObject != null) { isGround &= GroundCheck(_ShadowFirstObject.transform.position, lightDirection); } _IsConnected = CheckConnected(); foreach (GameObject shadow in _ShadowsFirst) { shadow.SetActive(false); } foreach (GameObject shadow in _ShadowsSecond) { shadow.SetActive(false); } if (!_IsConnected && _BlockLevel > 1 && _LightPosition != LightSource.LightSourcePosition.Center) { SetActiveShadowFirst(); if (_BlockLevel > 2) { bool isShadow = true; isShadow &= GroundCheck(_ShadowSecondObject.transform.position, Vector3.down); if(isShadow) SetActiveShadowSecond(); } } }