private static IEnumerator CorroutineWaitUntilTrue(BoolEvaluation eval)
 {
     while (!eval())
     {
         yield return(null);
     }
 }
 /// Wait for the given evaluation to become true before continuing
 public static Coroutine UntilTrue(MonoBehaviour owner, BoolEvaluation eval)
 {
     return(owner.StartCoroutine(CorroutineWaitUntilTrue(eval)));
 }