Я не могу понять, почему.
Я уже прочитал много документов об этом, и есть много комментариев, которые
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 истинно, я вижу "Стоп!!" журнал,
но сопрограмма не останавливается и не имитирует частицы.
кто-нибудь поможет в этом?
StopCoroutine
внутри сопрограммы? Вместо этого используйтеyield break
в первом оператореif
. - person Jerdak   schedule 13.11.2013StopCoroutine
, что предотвращает выполнение остальной части функции (включая симуляцию частиц). Чего вы пытаетесь достичь? - person Dan Puzey   schedule 13.11.2013