Example #1
0
        public MTActionState AddAction(MTAction action, GameObject target, bool paused = false)
        {
            Debug.Assert(action != null);
            Debug.Assert(target != null);

            HashElement element;

            if (!targets.TryGetValue(target, out element))
            {
                element        = new HashElement();
                element.Paused = paused;
                element.Target = target;
                targets.Add(target, element);
                targetsAvailable = true;
            }

            ActionAllocWithHashElement(element);
            var isActionRunning = false;

            for (int i = 0; i < element.ActionStates.Count; i++)
            {
                var existingState = element.ActionStates [i];
                if (existingState.Action == action)
                {
                    isActionRunning = true;
                    break;
                }
            }

            Debug.Assert(!isActionRunning, "MTUnityAction : Action is already running for this target.");
            var state = action.StartAction(target);

            element.ActionStates.Add(state);

            return(state);
        }
Example #2
0
        public MTActionState AddAction(MTAction action, GameObject target, bool paused = false)
        {
            Debug.Assert(action != null);
            Debug.Assert(target != null);

            HashElement element;
            if (!targets.TryGetValue(target, out element))
            {
                element = new HashElement();
                element.Paused = paused;
                element.Target = target;
                targets.Add(target, element);
                targetsAvailable = true;
            }

            ActionAllocWithHashElement(element);
            var isActionRunning = false;

            for (int i = 0; i < element.ActionStates.Count; i++) {
                var existingState = element.ActionStates [i];
                if (existingState.Action == action)
                {
                    isActionRunning = true;
                    break;
                }
            }

            Debug.Assert(!isActionRunning, "MTUnityAction : Action is already running for this target.");
            var state = action.StartAction(target);
            element.ActionStates.Add(state);

            return state;
        }