//Store the callback for the keyCallback, which will be at the key frame in the animation private bool storeCallbacks( HbClips.animationCallback[] callbacks){ r_Callbacks = new HbClips.animationCallback[ callbacks.Length ]; bool ok = true; //Check if all callbacks are ok foreach( HbClips.animationCallback callback in callbacks ){ if (callback == null ) { if( callback.Method == null ){ ok = false; break; } } } if( ok ){ r_Callbacks = callbacks; return true; } else { Debug.LogWarning("Warning. Attempted to store an invalid callback. Skipping"); return false; } }
private void playAnimationClip( HbClips.Animation clip, HbClips.animationCallback[] callbacks ){ if( !storeCallbacks (callbacks) ) { return; } //Play the appropriate animation string animation = ""; switch (clip) { case HbClips.Animation.ActivateLow: animation = "ActivateLow"; break; case HbClips.Animation.ActivateHigh: animation = "ActivateHigh"; break; case HbClips.Animation.Drink: animation = "Drink"; break; case HbClips.Animation.None: default: doCallbacks(); return; } r_Animator.SetTrigger(animation); }