Example #1
0
File: U9T.cs Project: unit9/swip3
	public static U9SerialTransition PrioritySequence( U9Transition[] transitions, float staggerTime = 0f ) {

		//Debug.Log ("START PRIORITY SEQUENCE -------------");
		List<U9Transition> transList = new List<U9Transition>( transitions );
		//transList.Sort( CompareTransitionPriority );
		IEnumerable enumerator = transList.OrderBy (t => t.Priority);

		int? currentPriority = null;
		U9SerialTransition serial = new U9SerialTransition ();
		List<U9Transition> parallelGroup = new List<U9Transition> ();

		foreach (U9Transition t in enumerator) {

			if (t != null) {
				if (t.Priority != currentPriority) {
					if (parallelGroup.Count > 0) {
						//Debug.Log ("Priority group: " + currentPriority + " = " + parallelGroup.Count );
						serial.AddTransition (U9T.Stagger (staggerTime, parallelGroup.ToArray ()));
						parallelGroup.Clear ();
					}
					currentPriority = t.Priority;
				}
				parallelGroup.Add (t);
			}

		}
		if (parallelGroup.Count > 0) {
			//Debug.Log ("Priority group: " + currentPriority + " = " + parallelGroup.Count );
			serial.AddTransition( U9T.Stagger( staggerTime, parallelGroup.ToArray() ) );
			parallelGroup.Clear ();
		}
		return serial;
	}
Example #2
0
    public static U9SerialTransition PrioritySequence(U9Transition[] transitions, float staggerTime = 0f)
    {
        //Debug.Log ("START PRIORITY SEQUENCE -------------");
        List <U9Transition> transList = new List <U9Transition>(transitions);
        //transList.Sort( CompareTransitionPriority );
        IEnumerable enumerator = transList.OrderBy(t => t.Priority);

        int?currentPriority               = null;
        U9SerialTransition  serial        = new U9SerialTransition();
        List <U9Transition> parallelGroup = new List <U9Transition> ();

        foreach (U9Transition t in enumerator)
        {
            if (t != null)
            {
                if (t.Priority != currentPriority)
                {
                    if (parallelGroup.Count > 0)
                    {
                        //Debug.Log ("Priority group: " + currentPriority + " = " + parallelGroup.Count );
                        serial.AddTransition(U9T.Stagger(staggerTime, parallelGroup.ToArray()));
                        parallelGroup.Clear();
                    }
                    currentPriority = t.Priority;
                }
                parallelGroup.Add(t);
            }
        }
        if (parallelGroup.Count > 0)
        {
            //Debug.Log ("Priority group: " + currentPriority + " = " + parallelGroup.Count );
            serial.AddTransition(U9T.Stagger(staggerTime, parallelGroup.ToArray()));
            parallelGroup.Clear();
        }
        return(serial);
    }