2025-05-18 01:04:31 +08:00

87 lines
1.4 KiB
C#

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<Collider>() != null)
{
mycollider = base.GetComponent<Collider>();
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;
}
}
}
}