Saya tidak mengerti alasannya.
Saya sudah membaca banyak dokumen tentang hal itu dan ada banyak komentar tentang itu
StopCoroutine(string) hanya dapat menghentikan coroutine yang dimulai dengan StartCoroutine(string)
kodenya ada di bawah.
Di Kelas CharTouchControl.cpp
if( Input.GetKeyDown( KeyCode.Q ) )
{
_CharControl.StartCoroutine("useFever", 10);
}
_CharControl adalah anggota CharTouchControl dan tentu saja _CharControl merujuk pada instance CharControl di bawah.
Dan 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
Ketika m_nUseFever ‹ _nFeverMax benar, saya dapat melihat "Stop!!" catatan,
tapi coroutine tidak berhenti dan menyimulasikan paticle.
adakah yang bisa membantu untuk ini?
StopCoroutine
dari dalam coroutine? Gunakanyield break
dalam pernyataanif
pertama sebagai gantinya. - person Jerdak   schedule 13.11.2013StopCoroutine
, yang mencegah fungsi lainnya (termasuk simulasi partikel) dijalankan. Apa yang ingin Anda capai? - person Dan Puzey   schedule 13.11.2013