using UnityEngine; public class Particle_Emit : MonoBehaviour { public float emitfinish_time; public float destroy_time; public float show_time; public float movespeed; public bool ismoveup; private bool move; private Transform mytransform; private Collider mycollider; private bool colliderexist; private void Awake() { mytransform = base.transform; if (base.GetComponent() != null) { mycollider = base.GetComponent(); colliderexist = true; } } private void OnEnable() { Invoke(nameof(EmitStart), show_time); Invoke(nameof(EmitFinish), emitfinish_time); Invoke(nameof(DestroyEmitter), destroy_time); move = false; } public void EmitStart() { //base.particleEmitter().emit = true; move = true; if (colliderexist) { InvokeRepeating(nameof(RepeatDamage), 0.1f, 0.3f); } } public void EmitFinish() { //base.particleEmitter().emit = false; if (colliderexist) { CancelInvoke(nameof(RepeatDamage)); mycollider.enabled = false; } } public void DestroyEmitter() { base.gameObject.SetActive(false); } private void RepeatDamage() { mycollider.enabled = false; mycollider.enabled = true; } private void Update() { if (move) { if (!ismoveup) { mytransform.position += mytransform.forward * Time.deltaTime * movespeed; } else { mytransform.position += Vector3.up * Time.deltaTime * movespeed; } } } }