예제 #1
0
        public static void SetStateMachine(ref AsyncUniTaskVoidMethodBuilder builder, ref TStateMachine stateMachine)
        {
            if (!pool.TryPop(out var result))
            {
                result = new AsyncUniTaskVoid <TStateMachine>();
            }
            TaskTracker.TrackActiveTask(result, 3);

            builder.runner      = result;       // set runner before copied.
            result.stateMachine = stateMachine; // copy struct StateMachine(in release build).
        }
예제 #2
0
        public static void SetStateMachine(ref TStateMachine stateMachine, ref IStateMachineRunner runnerFieldRef)
        {
            if (!pool.TryPop(out var result))
            {
                result = new AsyncUniTaskVoid <TStateMachine>();
            }
            TaskTracker.TrackActiveTask(result, 3);

            runnerFieldRef      = result;       // set runner before copied.
            result.stateMachine = stateMachine; // copy struct StateMachine(in release build).
        }