FireMeteorDrop.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using UnityEngine;
  3. public class FireMeteorDrop : BaseBehaviour
  4. {
  5. private void OnEnable()
  6. {
  7. this._gameObjectParicleSystem.OnParticleCreate += this.OnParticleCreate;
  8. this._gameObjectParicleSystem.OnParticleDestroy += this.OnParticleDestroy;
  9. }
  10. private void OnDisable()
  11. {
  12. this._gameObjectParicleSystem.OnParticleCreate -= this.OnParticleCreate;
  13. this._gameObjectParicleSystem.OnParticleDestroy -= this.OnParticleDestroy;
  14. }
  15. private void OnParticleCreate(object sender, EventArgs e)
  16. {
  17. GameObject gameObject = sender as GameObject;
  18. float distance = Physics2D.Raycast(gameObject.transform.position, Vector3.down, 100f, LayerManager.GroundMask).distance;
  19. EffectSettings component = gameObject.GetComponent<EffectSettings>();
  20. component.MoveSpeed = this._moveSpeed;
  21. component.MoveDistance = distance;
  22. }
  23. private void OnParticleDestroy(object sender, EventArgs e)
  24. {
  25. }
  26. [SerializeField]
  27. private GameObjectParicleSystem _gameObjectParicleSystem;
  28. [SerializeField]
  29. private float _moveSpeed = 6f;
  30. }