Guest User

Code

a guest
Mar 14th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.25 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. class MyAnimController : MonoBehaviour {
  6.     public Queue<int> queuedStateHashes = new Queue<int>();
  7.  
  8.     private int currentStateHash;
  9.  
  10.     public string defaultState;
  11.  
  12.     public Animator theAnimator;
  13.  
  14.     bool buttonPressed = false;
  15.     int buttonNumber = 1;
  16.  
  17.     AnimatorStateInfo info;
  18.  
  19.     private void Awake() {
  20.         currentStateHash = Animator.StringToHash(defaultState);
  21.         //StartCoroutine(PlayStates());
  22.     }
  23.  
  24.     //how you start and exit this is up to you, in this case,
  25.     //I'll assume it starts on awake
  26.     //private IEnumerator PlayStates() {
  27.     //    while (true) {
  28.     //        SetAnimStates();
  29.     //
  30.     //        yield return null;
  31.     //    }
  32.     //}
  33.  
  34.     private void SetAnimStates() {
  35.         info = theAnimator.GetCurrentAnimatorStateInfo(0);
  36.  
  37.         if (info.normalizedTime >= 1 && queuedStateHashes.Count > 0) {
  38.             currentStateHash = queuedStateHashes.Dequeue();
  39.             print("starting");
  40.             theAnimator.Play(currentStateHash, 0, 0);
  41.         }
  42.         else if (queuedStateHashes.Count == 0) {
  43.             //queuedStateHashes.Enqueue(currentStateHash);
  44.         }
  45.  
  46.         //print(queuedStateHashes.Count);
  47.     }
  48.  
  49.     private void Update() {
  50.         if (buttonPressed) {
  51.  
  52.             buttonPressed = false;
  53.  
  54.             switch (buttonNumber) {
  55.                 case 1: queuedStateHashes.Enqueue(Animator.StringToHash("Anim4")); break;
  56.                 case 2: queuedStateHashes.Enqueue(Animator.StringToHash("Anim4")); break;
  57.                 case 3: queuedStateHashes.Enqueue(Animator.StringToHash("Anim5"));
  58.                         queuedStateHashes.Enqueue(Animator.StringToHash("Anim6")); break;
  59.                 case 4: queuedStateHashes.Enqueue(Animator.StringToHash("Anim8")); break;
  60.                 case 5: queuedStateHashes.Enqueue(Animator.StringToHash("Anim7")); break;
  61.                 default: queuedStateHashes.Enqueue(Animator.StringToHash(defaultState)); break;
  62.             }
  63.  
  64.             //queuedStateHashes.Enqueue(stateHash);
  65.         }
  66.         SetAnimStates();
  67.     }
  68.  
  69.     public void pressButton(int number) {
  70.         buttonPressed = true;
  71.         buttonNumber = number;
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment