| using System; |
| using System; |
| using System.Collections.Generic; |
| using System.Collections.Generic; |
| using UnityEngine; |
| using UnityEngine; |
| |
| |
| . | public class WaterTrigger : MonoBehaviour |
| public class WaterTrigger : MonoBehaviour, IMonoUpdater |
| { |
| { |
| private void Start() |
| private void Start() |
| { |
| { |
| this.m_cooldownTimer = UnityEngine.Random.Range(0f, 2f); |
| this.m_cooldownTimer = UnityEngine.Random.Range(0f, 2f); |
| } |
| } |
| |
| |
| private void OnEnable() |
| private void OnEnable() |
| { |
| { |
| WaterTrigger.Instances.Add(this); |
| WaterTrigger.Instances.Add(this); |
| } |
| } |
| |
| |
| private void OnDisable() |
| private void OnDisable() |
| { |
| { |
| WaterTrigger.Instances.Remove(this); |
| WaterTrigger.Instances.Remove(this); |
| } |
| } |
| |
| |
| . | public void CustomUpdate(float deltaTime) |
| public void CustomUpdate(float deltaTime, float time) |
| { |
| { |
| this.m_cooldownTimer += deltaTime; |
| this.m_cooldownTimer += deltaTime; |
| if (this.m_cooldownTimer <= this.m_cooldownDelay) |
| if (this.m_cooldownTimer <= this.m_cooldownDelay) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| Transform transform = base.transform; |
| Transform transform = base.transform; |
| Vector3 position = transform.position; |
| Vector3 position = transform.position; |
| if (Floating.IsUnderWater(position, ref this.m_previousAndOut)) |
| if (Floating.IsUnderWater(position, ref this.m_previousAndOut)) |
| { |
| { |
| this.m_effects.Create(position, transform.rotation, transform, 1f, -1); |
| this.m_effects.Create(position, transform.rotation, transform, 1f, -1); |
| this.m_cooldownTimer = 0f; |
| this.m_cooldownTimer = 0f; |
| } |
| } |
| } |
| } |
| |
| |
| . | public static List<WaterTrigger> Instances { get; } = new List<WaterTrigger>(); |
| public static List<IMonoUpdater> Instances { get; } = new List<IMonoUpdater>(); |
| |
| |
| public EffectList m_effects = new EffectList(); |
| public EffectList m_effects = new EffectList(); |
| |
| |
| public float m_cooldownDelay = 2f; |
| public float m_cooldownDelay = 2f; |
| |
| |
| private float m_cooldownTimer; |
| private float m_cooldownTimer; |
| |
| |
| private WaterVolume m_previousAndOut; |
| private WaterVolume m_previousAndOut; |
| } |
| } |
| |
| |