public int InvokeRepeatingBool( BoolCoroutineMethodToCall method, float repeatRate ) { ++counter; IEnumerator tempIEnumerator = InvokeRepeatingBoolMethod( method, repeatRate ); currentCoroutines.Add( counter, tempIEnumerator ); StartCoroutine( tempIEnumerator ); return counter; }
private IEnumerator InvokeRepeatingBoolMethod( BoolCoroutineMethodToCall method, float waitTime ) { method(); while ( true ) { yield return new WaitForSeconds( waitTime ); if ( !method() ) { break; } } yield return null; }