好的,我做了一些学习的东西,我需要我的电梯停几秒钟 private IEnumerator ReversePlatform() { Yield return new WaitForSeconds(2); _AccuTime = 0...
好的,我做了一些学习工作,我需要让电梯停几秒钟
private IEnumerator ReversePlatform()
{
yield return new WaitForSeconds(2);
_AccuTime = 0;
speed = -speed;
}
我在这里打电话,我的电梯就开始摇晃并上升,它们不会下降
if (_AccuTime > _RunTime)
{
StartCoroutine("ReversePlatform");
}
else
{
transform.Translate(0, speed * Time.deltaTime, 0);
}
我需要它们上升,停留大约 2 秒,然后持续下降
这是因为 StartCoroutine
可以多次启动同一个协程,所以您从未添加检查以确保该协程 ReversePlatform
尚未运行:
private Coroutine reverseCoroutine;
private IEnumerator ReversePlatform()
{
yield return new WaitForSeconds(2);
_AccuTime = 0;
speed = -speed;
reverseCoroutine = null;
}
if (_AccuTime > _RunTime)
{
if (reverseCoroutine == null)
{
reverseCoroutine = StartCoroutine("ReversePlatform");
}
}
else
{
transform.Translate(0, speed * Time.deltaTime, 0);
}