// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-02 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using UnityEngine; namespace G { public class Ef_rotfog : MonoBehaviour { private float _fogHeight; private float _fogSpeed; private int _fogRotation; private int _fogAlpha; private float _xyRatio; private Color _transColor; private Color _targetColor; private Color _currentColor; private Vector3 _plusV; private Material _material; private void Awake() { _material = this.GetComponent().material; } private void Start() { transform.localScale = Vector3.zero; _targetColor = new Color(0.5f, 0.5f, 0.5f, 0f); } public void RotfogOn(float limit_height, float _scale_speed, int _rot_speed, int _fogalpha, float _xyratio) { this.gameObject.SetActive(true); transform.localScale = Vector3.one * 0.3f; _fogHeight = limit_height; _fogSpeed = _scale_speed; _fogRotation = _rot_speed; _fogAlpha = _fogalpha; _xyRatio = _xyratio; _material.color = Color.gray; _plusV = new Vector3(_fogSpeed, _fogSpeed * _xyRatio, _fogSpeed); } private void Update() { _currentColor = _material.color; Vector3 localScale = transform.localScale; if (localScale.y > _fogHeight) { this.gameObject.SetActive(false); return; } if (localScale.y > _fogHeight * 0.5f) { transform.localScale += _plusV * Time.deltaTime; _transColor = Color.Lerp(_currentColor, _targetColor, Time.deltaTime * _fogAlpha); _material.color = _transColor; } else { transform.localScale += _plusV * Time.deltaTime; transform.eulerAngles += Vector3.up * _fogRotation * Time.deltaTime; } } } }