Beispiel #1
0
        protected void SetTrue(string exitParameter, Action callback)
        {
            var info = new RoutineInfo
            {
                TrueParameter  = exitParameter,
                FalseParameter = exitParameter,
                Callback       = callback
            };

            const string methodName = nameof(Exit);

            StopCoroutine(methodName);
            StartCoroutine(methodName, info);
        }
Beispiel #2
0
        IEnumerator Exit(RoutineInfo info)
        {
            // trigger einen neuen State "andere Animation wird gestartet"
            anim.SetBool(info.TrueParameter, true);

            // warte bis das umgesetzt ist
            yield return(new WaitUntil(() => anim.GetBool(info.TrueParameter) && checkAnimationRunning(0)));

            // warte bis die Animation vorbei ist
            while (checkAnimationRunning(0))
            {
                yield return(null);
            }

            // schalte die Animation wieder ab
            anim.SetBool(info.FalseParameter, false);

            // warte bis das umgesetzt ist
            yield return(new WaitUntil(() => !anim.GetBool(info.TrueParameter)));

            // was soll nach der Animation passieren
            // -- canvas.setActive(false)
            info.Callback?.Invoke();
        }