【发布时间】:2015-12-29 19:43:41
【问题描述】:
我正在尝试进行回合制游戏。玩家将转牌传给 IA,反之亦然。问题是,处理器运行速度太快了,有时我想做一个WaitForSeconds。在下面的示例中,我想让处理器在使用硬币之前等待 3 秒,但它只是忽略命令并转到方法 Player1Turn() 而不等待 3 秒。怎么了?
using UnityEngine;
using System.Collections;
public class Exemplo : MonoBehaviour
{
void Update()
{
if (IATurn == true)
{
StartCoroutine(UseCoin());
//Do some stuff
Player1Turn();
IATurn = false;
}
}
IEnumerator UseCoin()
{
yield return new WaitForSeconds(3);
MyMana--;
}
void Player1Turn()
{
//Do stuff;
}
}
【问题讨论】:
-
那不是
yield return new WaitForSeconds(3000);秒以毫秒为单位而不是单个整数.. -
@MethodMan 不,per the docs。这是一个浮点数秒数。
-
然后看起来 OP 需要做
yield WaitForSeconds(3);与新的@DiegoBittencourt 阅读以下docs.unity3d.com/ScriptReference/WaitForSeconds-ctor.html -
@MethodMan 不,您可能只是在看 Javascript 示例,但问题是关于 C#。