我的脚本中有一个函数调用5个命令,如下所示:
public class ScrambleScript : MonoBehaviour {
public RRotation ScrambleR; // reference for R rotation
public LRotation ScrambleL; // reference for L rotation
public FRotation ScrambleF; // reference for F rotation
public DRotation ScrambleD; // reference for D rotation
public Rotation ScrambleU; // reference for U rotation
void ScrambleCube() {
ScrambleR.ScrambleRNotation();
ScrambleU.ScrambleUNotation();
ScrambleL.ScrambleLNotation();
ScrambleF.ScrambleFNotation();
ScrambleD.ScrambleDNotation();
}
}
一旦我在Update()
中调用此函数,每个帧都会调用这些命令,但是我希望能够创建另一个延迟函数,我可以使用它在每个函数调用之间暂停1秒,所以它看起来像这样:
void ScrambleCube() {
ScrambleR.ScrambleRNotation();
// waits 1 second here.
ScrambleU.ScrambleUNotation();
// waits 1 second here.
ScrambleL.ScrambleLNotation();
// waits 1 second here.
ScrambleF.ScrambleFNotation();
// waits 1 second here.
ScrambleD.ScrambleDNotation();
}
我已尝试使用IEnumerator
功能,但如果我在上面显示的每个函数调用之间粘贴延迟,我似乎无法工作。还有另一种方法吗?或者我错误地使用了IEnumerator
?
答案 0 :(得分:0)
您可以使用IEnumerators
public IEnumerator ScrambleCube () {
ScrambleR.ScrambleRNotation();
yield return new WaitForSeconds(1); // This pauses the execution of
// the function for 1 second
ScrambleU.ScrambleUNotation();
// etc...
}
请注意,您无法仅通过方法名称调用协同程序,您必须使用一种名为MonoBehaviours
的{{1}}方法。
StartCoroutine
请注意,启动协程将不延迟执行发出StartCoroutine(ScrambleCube());
调用的方法。