我不明白为什么。
我已经阅读了很多关于它的文件,并且有很多评论
StopCoroutine(string) 只能停止以 StartCoroutine(string) 开头的协程
代码如下。
在 CharTouchControl.cpp 类中
if( Input.GetKeyDown( KeyCode.Q ) )
{
_CharControl.StartCoroutine("useFever", 10);
}
_CharControl 是 CharTouchControl 的成员,当然 _CharControl 引用了下面的 CharControl 实例。
和 InClass CharControl
public IEnumerator useFever(float _duration = 10)
{
if( m_nUseFever < _nFeverMax )
{
Debug.Log("Stop!!");
StopCoroutine("useFever");
yield return new WaitForEndOfFrame();
}
m_fgCharState = CharState._FEVER;
// fever particle
m_psFeverPaticle.Simulate(4);
yield return new WaitForEndOfFrame();
} // end of useFever
当 m_nUseFever < _nFeverMax 为真时,我可以看到“停止!!” 日志,
但协程不会停止并模拟颗粒。
有人帮忙吗?