mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-12 22:44:35 +01:00
79 lines
1.6 KiB
C#
79 lines
1.6 KiB
C#
using UnityEngine;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class MonoEffectPluginKeyMeshes : BaseMonoEffectPlugin
|
|
{
|
|
[Header("Drag consequent key transforms into this.")]
|
|
public Transform[] keyedTransforms;
|
|
|
|
[Header("How many frames does the keyed transform last")]
|
|
public int[] keyedFrames;
|
|
|
|
private float[] _keyedTime;
|
|
|
|
private float _timer;
|
|
|
|
private int _curKey;
|
|
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
_timer = 0f;
|
|
float num = 0f;
|
|
_keyedTime = new float[keyedFrames.Length];
|
|
for (int i = 0; i < _keyedTime.Length; i++)
|
|
{
|
|
num += (float)keyedFrames[i] * (1f / 60f);
|
|
_keyedTime[i] = num;
|
|
}
|
|
}
|
|
|
|
public override void Setup()
|
|
{
|
|
for (int i = 0; i < keyedTransforms.Length; i++)
|
|
{
|
|
keyedTransforms[i].gameObject.SetActive(false);
|
|
}
|
|
_curKey = 0;
|
|
keyedTransforms[_curKey].gameObject.SetActive(true);
|
|
_timer = 0f;
|
|
}
|
|
|
|
protected void Update()
|
|
{
|
|
if (_curKey >= _keyedTime.Length)
|
|
{
|
|
return;
|
|
}
|
|
_timer += Time.deltaTime * _effect.TimeScale;
|
|
int curKey = _curKey;
|
|
while (_timer > _keyedTime[_curKey])
|
|
{
|
|
_curKey++;
|
|
if (_curKey == _keyedTime.Length)
|
|
{
|
|
keyedTransforms[_keyedTime.Length - 1].gameObject.SetActive(false);
|
|
return;
|
|
}
|
|
}
|
|
if (curKey != _curKey)
|
|
{
|
|
keyedTransforms[curKey].gameObject.SetActive(false);
|
|
keyedTransforms[_curKey].gameObject.SetActive(true);
|
|
}
|
|
}
|
|
|
|
public override bool IsToBeRemove()
|
|
{
|
|
return _curKey >= _keyedTime.Length;
|
|
}
|
|
|
|
public override void SetDestroy()
|
|
{
|
|
keyedTransforms[_curKey].gameObject.SetActive(false);
|
|
_curKey = _keyedTime.Length;
|
|
}
|
|
}
|
|
}
|