Ejemplo n.º 1
0
        public int ResolveDriver(IReadOnlyReanimatorState previousState, ReanimatorState nextState, int size)
        {
            if (size == 0)
            {
                return(0);
            }
            string driverName = string.IsNullOrEmpty(name) ? guid : name;

            if (percentageBased)
            {
                float floatDriverValue = Mathf.Clamp01(previousState.GetFloat(driverName));
                if (floatDriverValue < 1)
                {
                    return(Mathf.FloorToInt(floatDriverValue * size));
                }

                return(size - 1);
            }

            int driverValue = previousState.Get(driverName) % size;

            if (autoIncrement)
            {
                nextState.Set(driverName, (driverValue + 1) % size);
            }

            return(driverValue);
        }
Ejemplo n.º 2
0
 public override TerminationNode Resolve(IReadOnlyReanimatorState previousState, ReanimatorState nextState)
 {
     AddTrace(nextState);
     nextState.Merge(drivers);
     return(nodes[controlDriver.ResolveDriver(previousState, nextState, nodes.Length)]
            .Resolve(previousState, nextState));
 }
Ejemplo n.º 3
0
        public override TerminationNode Resolve(IReadOnlyReanimatorState previousState, ReanimatorState nextState)
        {
            AddTrace(nextState);
            var node = next.Resolve(previousState, nextState);

            if (!_map.ContainsKey(node))
            {
                return(node);
            }

            var overrideNode = _map[node];

#if UNITY_EDITOR
            nextState.AddTrace(overrideNode);
#endif
            return(overrideNode);
        }
Ejemplo n.º 4
0
 public abstract TerminationNode Resolve(IReadOnlyReanimatorState previousState, ReanimatorState nextState);
Ejemplo n.º 5
0
 public override ICel ResolveCel(IReadOnlyReanimatorState previousState, ReanimatorState nextState)
 {
     nextState.Merge(drivers);
     return(cels[controlDriver.ResolveDriver(previousState, nextState, cels.Length)]);
 }
Ejemplo n.º 6
0
 public override TerminationNode Resolve(IReadOnlyReanimatorState previousState, ReanimatorState nextState)
 {
     AddTrace(nextState);
     nextState.Merge(drivers);
     return(this);
 }
Ejemplo n.º 7
0
 public abstract ICel ResolveCel(IReadOnlyReanimatorState previousState, ReanimatorState nextState);