// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-02 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using UnityEngine; namespace G { /// /// /// public class Ef_fixed : Ef_base { public float m_spaceTrigger; public bool m_followMe; private ParticleSystem m_emitter; #pragma warning disable CS0414 // 字段“Ef_fixed.m_spaceCount”已被赋值,但从未使用过它的值 private float m_spaceCount; #pragma warning restore CS0414 // 字段“Ef_fixed.m_spaceCount”已被赋值,但从未使用过它的值 private bool m_onlyOne; private new void Awake() { base.Awake(); m_transform = base.transform; m_collider = base.GetComponent(); m_emitter = base.gameObject.GetComponentInChildren(); } private void Start() { } private void OnEnable() { if ((bool)m_emitter) { m_emitter.Play(); } m_spaceCount = 0f; m_delay = 0f; m_localScale = m_transform.localScale; SetCollider(false); m_onlyOne = false; if (m_spaceTrigger > 0f) { InvokeRepeating(nameof(SetSpaceCollider_CB), m_startTrigger, m_spaceTrigger); InvokeRepeating(nameof(SetSpaceCollider2_CB), m_startTrigger + 0.05f, m_spaceTrigger + 0.05f); } } private void OnDisable() { CancelInvoke(nameof(SetSpaceCollider_CB)); } private void Update() { m_delay += Time.deltaTime; if (m_followMe) { Ef_base.GetPosByType(m_transform, base.m_user, m_posType, m_rotationWithTarget); } m_transform.localScale = m_localScale; if (m_endDelay != -1f && m_delay >= m_endDelay) { Destroy(base.gameObject); } else if (m_delay >= m_endTrigger && m_endTrigger != -1f) { SetCollider(false); } else if (m_spaceTrigger == 0f && m_collider && m_delay >= m_startTrigger && !m_onlyOne) { SetCollider(true); m_onlyOne = true; } } private void SetSpaceCollider_CB() { if (m_collider) { SetCollider(true); } } private void SetSpaceCollider2_CB() { if (m_collider) { SetCollider(false); } } } }