xi/Assets/StylizedProjectilePack1/scripts/instantiateEffectCaller.cs
2024-11-27 00:53:01 +08:00

61 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class instantiateEffectCaller : MonoBehaviour
{
[System.NonSerialized]
public bool fired = false;
float timer;
public float timeLimit;
[System.Serializable]
public class chainEffect
{
[System.NonSerialized]
public bool isPlayed = false;
public float activateTimer;
public GameObject Effect;
public Transform effectLocator;
}
public chainEffect[] chainEffectList;
void Start()
{
// print(chainEffectList.Length);
}
// Update is called once per frame
void Update()
{
timer += Time.deltaTime;
CheckTimer();
}
void CheckTimer()
{
for (int i = 0; i < chainEffectList.Length; i++)
{
if (timer >= chainEffectList[i].activateTimer && chainEffectList[i].isPlayed == false)
{
Instantiate(chainEffectList[i].Effect, chainEffectList[i].effectLocator.transform.position, chainEffectList[i].effectLocator.transform.rotation);
chainEffectList[i].isPlayed = true;
}
}
if (timer >= timeLimit)
{
fired = false;
ResetTimers();
}
}
public void ResetTimers()
{
for (int i = 0; i < chainEffectList.Length; i++)
{
chainEffectList[i].isPlayed = false;
}
timer = 0;
}
}