void OnStartedTransitionToWalking(AnimatorAccess.TransitionInfo info, AnimatorAccess.LayerStatus status) { walkingDirection = ToDirection(speed); anim.SetRotate((int)walkingDirection); randomRotationTimestamp = Time.realtimeSinceStartup; // LogTransition ("OnStartedTransitionToWalking", info); }
void OnIdle(AnimatorAccess.StateInfo info, AnimatorAccess.LayerStatus status) { float random = Random.value; if (random > YawnThreshold) { // start yawning from time to time which will block input anim.SetYawnTrigger(); } if (Time.realtimeSinceStartup - randomRotationTimestamp > randomRotationInterval) { // rotate after randomRotationInterval to random direction int currrentRotation = anim.GetRotate(); int newRotation = currrentRotation == 0 ? (int)Mathf.Sign((int)Random.Range(-1, 1)) : 0; anim.SetRotate(newRotation); randomRotationTimestamp = Time.realtimeSinceStartup; } }
void OnEnterYawning(AnimatorAccess.StateInfo info, AnimatorAccess.LayerStatus status) { speed = 0f; audio.Play(); }
void OnAnyLayer0TransitionSecondAction(AnimatorAccess.TransitionInfo info, AnimatorAccess.LayerStatus status) { // LogTransition ("OnAnyLayer0TransitionSecondAction - " + status.Layer, info); }
void LogStateChange(string method, AnimatorAccess.StateInfo info, AnimatorAccess.LayerStatus status) { UnityEngine.Debug.Log(string.Format("[t={0:0.00}] == '{1:-25}' callback: {2}, previous state was {3}", Time.realtimeSinceStartup, info.Name, method, anim.GetStateName(status.State.Previous))); }
void OnAnyStateChangeDebug(AnimatorAccess.StateInfo info, AnimatorAccess.LayerStatus status) { LogStateChange("OnAnyStateChange", info, status); }