public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { // get Control script component attached to our gameObject control = characterStateBase.getController(animator); // attack kicked off, now disable animator.SetBool(AnimationTags.LEFT_SWING, false); animator.SetBool(AnimationTags.RIGHT_SWING, false); animator.SetBool(AnimationTags.END, false); // Load prefab empty object that contains the attack info script // We can use this object as a way to broadcast information on attacks GameObject obj = Instantiate(Resources.Load("AttackInfo", typeof(GameObject))) as GameObject; AttackInfo attackInfo = obj.GetComponent <AttackInfo>(); attackInfo.resetAttackInfo(this); // Add object containing attack info into the attack manager if (!AttackManager.Instance.currentAttacks.Contains(attackInfo)) { AttackManager.Instance.currentAttacks.Add(attackInfo); } }
public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { // after elapsed time, switch animator held in Control if (stateInfo.normalizedTime >= switchTiming) { characterStateBase.getController(animator).GetComponent <Animator>().runtimeAnimatorController = targetAnimator; } }
public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { TimerRecalling = 0f; canRecall = false; control = characterStateBase.getController(animator); Hammer = control.Hammer.GetComponent <Hammer>(); // reset previous animation values animator.SetBool(AnimationTags.FORCE_TRANSITION, false); animator.SetInteger(AnimationTags.TRANSITION_INDEX, 0); animator.SetBool(AnimationTags.END, false); }
// Idle is a StateData; which is an item from a list of abilities. // CharacterStateBase, which is attached to the object, will call updateAbility from all StateData public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { // get control component control = characterStateBase.getController(animator); // move left if (control.moveLeft || control.moveRight) { animator.SetBool(AnimationTags.WALK, true); } else { animator.SetBool(AnimationTags.WALK, false); } // attack if (control.attack) { // different arm jab triggered depending on forward position if (control.transform.forward.x > 1) { animator.SetBool(AnimationTags.RIGHT_SWING, true); } else { animator.SetBool(AnimationTags.LEFT_SWING, true); } } // Hammer recall if (control.recall && !control.hammerEquipped) { animator.SetBool(AnimationTags.RECALL, true); } // Hammer throw if (control.throwHammer && control.hammerEquipped) { animator.SetBool(AnimationTags.THROW, true); } // Death if (control.dead) { animator.SetBool(AnimationTags.DEAD, true); } }
// MoveForward is a StateData; which is an item from a list of abilities. // CharacterStateBase, which is attached to the object, will call updateAbility from all StateData public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { // get control script component control = characterStateBase.getController(animator); // if moving left if (control.moveLeft) { // animate walk animator.SetBool(AnimationTags.WALK, true); // move left control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); // rotate left control.transform.rotation = Quaternion.Euler(0f, -90f, 0f); } // if moving right if (control.moveRight) { animator.SetBool(AnimationTags.WALK, true); control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); control.transform.rotation = Quaternion.Euler(0f, 90f, 0f); } // not moving if (!control.moving) { animator.SetBool(AnimationTags.WALK, false); } // move forward regarless of input. Uses include moving forward with a punch if (constant) { control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); } }
public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { control = characterStateBase.getController(animator); Hammer = control.Hammer; HammerScript = Hammer.GetComponent <Hammer>(); }
public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo) { control = characterStateBase.getController(animator); }