mirror of
https://github.com/Leahnaya/TheKingsRace.git
synced 2026-04-26 02:00:54 -05:00
Merge branch 'fixAnimator' into main
This commit is contained in:
commit
03a96b8c67
|
|
@ -1,8 +1,9 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using MLAPI;
|
||||
|
||||
public class AnimationManager : MonoBehaviour
|
||||
public class AnimationManager : NetworkBehaviour
|
||||
{
|
||||
//current priority weight
|
||||
|
||||
|
|
@ -17,11 +18,11 @@ public class AnimationManager : MonoBehaviour
|
|||
private int currentPriority = 1;
|
||||
|
||||
//declare references to all the state managers
|
||||
private dOffenseStateManager offenseState;
|
||||
private dNitroStateManager nitroState;
|
||||
private dMoveStateManager moveState;
|
||||
private dDashStateManager dashState;
|
||||
private dAerialStateManager aerialState;
|
||||
private OffenseStateManager offenseState;
|
||||
private NitroStateManager nitroState;
|
||||
private MoveStateManager moveState;
|
||||
private DashStateManager dashState;
|
||||
private AerialStateManager aerialState;
|
||||
|
||||
//declare reference to animator
|
||||
private Animator animator;
|
||||
|
|
@ -30,11 +31,11 @@ public class AnimationManager : MonoBehaviour
|
|||
private void Awake()
|
||||
{
|
||||
//initialize all state managers references
|
||||
offenseState = GetComponent<dOffenseStateManager>();
|
||||
nitroState = GetComponent<dNitroStateManager>();
|
||||
moveState = GetComponent<dMoveStateManager>();
|
||||
dashState = GetComponent<dDashStateManager>();
|
||||
aerialState = GetComponent<dAerialStateManager>();
|
||||
offenseState = GetComponent<OffenseStateManager>();
|
||||
nitroState = GetComponent<NitroStateManager>();
|
||||
moveState = GetComponent<MoveStateManager>();
|
||||
dashState = GetComponent<DashStateManager>();
|
||||
aerialState = GetComponent<AerialStateManager>();
|
||||
|
||||
animator = GetComponent<Animator>();
|
||||
|
||||
|
|
@ -46,32 +47,39 @@ public class AnimationManager : MonoBehaviour
|
|||
//then the current priorty will changed
|
||||
//Note: if we ever want to have this manager keep track of current animation state and not just a priorty number,
|
||||
//then this will need to be changed later (also if we want to add additional animations)
|
||||
public void updateCurrentPriority(){
|
||||
public void updateCurrentPriority()
|
||||
{
|
||||
int highestPriority;
|
||||
//check if MoveStateManager's current state is incapcitated state
|
||||
if (moveState.currentState.GetType() == typeof(dMoveRagdollState) || moveState.currentState.GetType() == typeof(dMoveRecoveringState)){
|
||||
if (moveState.currentState.GetType() == typeof(MoveRagdollState) || moveState.currentState.GetType() == typeof(MoveRecoveringState))
|
||||
{
|
||||
highestPriority = 5;
|
||||
|
||||
}
|
||||
//if dash manager current state is dashing
|
||||
else if (dashState.currentState.GetType() == typeof(dDashDashingState)){
|
||||
else if (dashState.currentState.GetType() == typeof(DashDashingState))
|
||||
{
|
||||
highestPriority = 4;
|
||||
}
|
||||
|
||||
//check to see if offense manager current state is any state that's doesn't have a weight of 0;
|
||||
else if (offenseState.currentState.GetType() != typeof(dOffenseIncapacitatedState) && offenseState.currentState.GetType() != typeof(dOffenseNoneState) && offenseState.currentState.GetType() != typeof(dOffenseCooldownState)){
|
||||
else if (offenseState.currentState.GetType() != typeof(OffenseIncapacitatedState) && offenseState.currentState.GetType() != typeof(OffenseNoneState) && offenseState.currentState.GetType() != typeof(OffenseCooldownState))
|
||||
{
|
||||
highestPriority = 3;
|
||||
}
|
||||
//if current state in aerialManager is not grounded
|
||||
else if (aerialState.currentState.GetType() != typeof(dAerialGroundedState)){
|
||||
else if (aerialState.currentState.GetType() != typeof(AerialGroundedState))
|
||||
{
|
||||
highestPriority = 2;
|
||||
}
|
||||
//ground movement is the only state with a animation right now
|
||||
else{
|
||||
else
|
||||
{
|
||||
highestPriority = 1;
|
||||
}
|
||||
//if highest priorty does not equal current, then a state changed has resulted in a new higher priorty animation
|
||||
if(highestPriority != currentPriority){
|
||||
if (highestPriority != currentPriority)
|
||||
{
|
||||
currentPriority = highestPriority;
|
||||
animator.SetInteger("currentPriority", currentPriority);
|
||||
|
||||
|
|
@ -79,21 +87,25 @@ public class AnimationManager : MonoBehaviour
|
|||
}
|
||||
//function will set the currentPriorty to the newPriority arguement.
|
||||
//Note: this function is mostly meant to exist if we need to force a new priorty for some reason, otherwise lgoci will be handled in check
|
||||
public void SetCurrentPriorityState(int newPriority){
|
||||
public void SetCurrentPriorityState(int newPriority)
|
||||
{
|
||||
//set var to new prio
|
||||
currentPriority = newPriority;
|
||||
//set animator priority var
|
||||
animator.SetInteger("currentPriority", currentPriority);
|
||||
}
|
||||
|
||||
|
||||
//return priority of a given state (stubbed out for not as not needed for current implementation but may be desired later)
|
||||
public int GetCurrentPriortyValue(){
|
||||
public int GetCurrentPriortyValue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//retrieve highest priority value (current priorty should almost always be
|
||||
public int GetHighestPriorityValue(){
|
||||
public int GetHighestPriorityValue()
|
||||
{
|
||||
return currentPriority;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: db0579f1149ac2f4295639b1c9430bf6
|
||||
guid: 8ab36263847f7f2408ee4621b46003a3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 0}
|
||||
m_Motion: {fileID: -203655887218126122, guid: 94c70f0bbd236cc4ebf08227b01b3f95, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
|
@ -553,43 +553,43 @@ AnimatorController:
|
|||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: isWalking
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: isJogging
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: isIdle
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: isDashing
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: currentPriority
|
||||
m_Type: 3
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 1
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: IsKicking
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
|
|
@ -664,7 +664,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 0}
|
||||
m_Motion: {fileID: -203655887218126122, guid: 94c70f0bbd236cc4ebf08227b01b3f95, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public class dDashStateManager : NetworkBehaviour
|
|||
public dMoveStateManager mSM; // movement state manager
|
||||
public CoolDown driver; // cooldown driver
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
private dAnimationManager animationManager;
|
||||
////
|
||||
|
||||
////Items Section
|
||||
|
|
@ -38,7 +38,7 @@ public class dDashStateManager : NetworkBehaviour
|
|||
////Initialize Player Components
|
||||
moveController = GetComponent<CharacterController>(); // set Character Controller
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
animationManager = GetComponent<dAnimationManager>();
|
||||
//driver = GameObject.Find("Canvas").GetComponent<CoolDown>();
|
||||
////
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class dMoveStateManager : NetworkBehaviour
|
|||
public PlayerStats pStats; // Player Stats
|
||||
public dAerialStateManager aSM;
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
private dAnimationManager animationManager;
|
||||
////
|
||||
|
||||
////State Transition Variables
|
||||
|
|
@ -91,7 +91,7 @@ public class dMoveStateManager : NetworkBehaviour
|
|||
capCol.enabled = true;
|
||||
parentObj = transform.parent.gameObject; // set parent object
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
animationManager = GetComponent<dAnimationManager>();
|
||||
////
|
||||
|
||||
////Initialize Scripts
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class dNitroStateManager : NetworkBehaviour
|
|||
public dMoveStateManager mSM; // move state manager
|
||||
public CoolDown driver; // cooldown driver
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
private dAnimationManager animationManager;
|
||||
////
|
||||
|
||||
////Items Section
|
||||
|
|
@ -53,7 +53,7 @@ public class dNitroStateManager : NetworkBehaviour
|
|||
capCol.enabled = true;
|
||||
parentObj = transform.parent.gameObject; // set parent object
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
animationManager = GetComponent<dAnimationManager>();
|
||||
//driver = GameObject.Find("Canvas").GetComponent<CoolDown>();
|
||||
////
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class dOffenseStateManager : NetworkBehaviour
|
|||
public dMoveStateManager mSM; // move state manager
|
||||
public dAerialStateManager aSM; // aerial state manager
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
private dAnimationManager animationManager;
|
||||
///
|
||||
|
||||
void Awake(){
|
||||
|
|
@ -51,7 +51,7 @@ public class dOffenseStateManager : NetworkBehaviour
|
|||
capCol = GetComponent<CapsuleCollider>(); // set Capsule Collider
|
||||
capCol.enabled = true;
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
animationManager = GetComponent<dAnimationManager>();
|
||||
////
|
||||
|
||||
////Initialize Player Objects
|
||||
|
|
|
|||
|
|
@ -35,12 +35,14 @@ public class AerialStateManager : NetworkBehaviour
|
|||
////Components Section
|
||||
public CharacterController moveController; // Character Controller
|
||||
Rigidbody rB; // Players Rigidbody
|
||||
Animator animator; // Animation Controller
|
||||
public Animator animator; // Animation Controller
|
||||
////
|
||||
|
||||
////Scripts Section
|
||||
public PlayerStats pStats; // Player Stats
|
||||
public MoveStateManager mSM;
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
////
|
||||
|
||||
////Variables Section
|
||||
|
|
@ -115,6 +117,7 @@ public class AerialStateManager : NetworkBehaviour
|
|||
////Initialize Scripts
|
||||
pStats = GetComponent<PlayerStats>(); // set PlayerStats
|
||||
mSM = GetComponent<MoveStateManager>(); // set move state manager
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
////
|
||||
}
|
||||
|
||||
|
|
@ -195,6 +198,7 @@ public class AerialStateManager : NetworkBehaviour
|
|||
|
||||
//updates current state and calls logic for entering
|
||||
currentState = state;
|
||||
animationManager.updateCurrentPriority();
|
||||
currentState.EnterState(this, previousState);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,12 @@ public class DashDashingState : DashBaseState
|
|||
|
||||
public override void EnterState(DashStateManager dSM, DashBaseState previousState){
|
||||
currentDashTime = 0; // resets dash time
|
||||
dSM.GetComponent<Animator>().SetBool("isDashing", true);
|
||||
}
|
||||
|
||||
public override void ExitState(DashStateManager dSM, DashBaseState nextState){
|
||||
moveDirection = Vector3.zero; // resets moveDirection
|
||||
dSM.GetComponent<Animator>().SetBool("isDashing", false);
|
||||
}
|
||||
|
||||
public override void UpdateState(DashStateManager dSM){
|
||||
|
|
|
|||
|
|
@ -18,13 +18,15 @@ public class DashStateManager : NetworkBehaviour
|
|||
|
||||
////Components Section
|
||||
public CharacterController moveController; // Character Controller
|
||||
Animator animator; // Animation Controller
|
||||
public Animator animator; // Animation Controller
|
||||
////
|
||||
|
||||
////Scripts Section
|
||||
public PlayerStats pStats; // Player Stats
|
||||
public MoveStateManager mSM; // movement state manager
|
||||
public CoolDown driver; // cooldown driver
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
////
|
||||
|
||||
////Items Section
|
||||
|
|
@ -42,6 +44,7 @@ public class DashStateManager : NetworkBehaviour
|
|||
////Initialize Scripts
|
||||
pStats = GetComponent<PlayerStats>(); // set PlayerStats
|
||||
mSM = GetComponent<MoveStateManager>(); // set move state manager
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
////
|
||||
}
|
||||
|
||||
|
|
@ -77,6 +80,7 @@ public class DashStateManager : NetworkBehaviour
|
|||
|
||||
//updates current state and calls logic for entering
|
||||
currentState = state;
|
||||
animationManager.updateCurrentPriority();
|
||||
currentState.EnterState(this, previousState);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,12 +37,14 @@ public class MoveStateManager : NetworkBehaviour
|
|||
public CharacterController moveController; // Character Controller
|
||||
public Rigidbody rB; // Players Rigidbody
|
||||
public CapsuleCollider capCol; // Players Capsule Collider
|
||||
private Animator animator; // Animation Controller
|
||||
public Animator animator; // Animation Controller
|
||||
////
|
||||
|
||||
////Scripts Section
|
||||
public PlayerStats pStats; // Player Stats
|
||||
public AerialStateManager aSM;
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
////
|
||||
|
||||
////State Transition Variables
|
||||
|
|
@ -89,6 +91,7 @@ public class MoveStateManager : NetworkBehaviour
|
|||
capCol.enabled = true;
|
||||
parentObj = transform.parent.gameObject; // set parent object
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
////
|
||||
|
||||
////Initialize Scripts
|
||||
|
|
@ -163,6 +166,7 @@ public class MoveStateManager : NetworkBehaviour
|
|||
|
||||
//updates current state and calls logic for entering
|
||||
currentState = state;
|
||||
animationManager.updateCurrentPriority();
|
||||
currentState.EnterState(this, previousState);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ using UnityEngine;
|
|||
public class MoveIdleState : MoveBaseState
|
||||
{
|
||||
public override void EnterState(MoveStateManager mSM, MoveBaseState previousState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isIdle", true);
|
||||
Debug.Log("Entered Idle");
|
||||
}
|
||||
|
||||
public override void ExitState(MoveStateManager mSM, MoveBaseState nextState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isIdle", false);
|
||||
Debug.Log("Exited Idle");
|
||||
}
|
||||
|
||||
public override void UpdateState(MoveStateManager mSM){
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ using UnityEngine;
|
|||
public class MoveJogState : MoveBaseState
|
||||
{
|
||||
public override void EnterState(MoveStateManager mSM, MoveBaseState previousState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isJogging", true);
|
||||
Debug.Log("Entered Jog");
|
||||
}
|
||||
|
||||
public override void ExitState(MoveStateManager mSM, MoveBaseState nextState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isJogging", false);
|
||||
Debug.Log("Exited Jog");
|
||||
}
|
||||
|
||||
public override void UpdateState(MoveStateManager mSM){
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ using UnityEngine;
|
|||
public class MoveRunState : MoveBaseState
|
||||
{
|
||||
public override void EnterState(MoveStateManager mSM, MoveBaseState previousState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isRunning", true);
|
||||
Debug.Log("Entered Run");
|
||||
}
|
||||
|
||||
public override void ExitState(MoveStateManager mSM, MoveBaseState nextState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isRunning", false);
|
||||
Debug.Log("Exit Run");
|
||||
}
|
||||
|
||||
public override void UpdateState(MoveStateManager mSM){
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ using UnityEngine;
|
|||
public class MoveWalkState : MoveBaseState
|
||||
{
|
||||
public override void EnterState(MoveStateManager mSM, MoveBaseState previousState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isWalking", true);
|
||||
Debug.Log("Entered Walk");
|
||||
}
|
||||
|
||||
public override void ExitState(MoveStateManager mSM, MoveBaseState nextState){
|
||||
|
||||
mSM.GetComponent<Animator>().SetBool("isWalking", false);
|
||||
Debug.Log("Exited Walk");
|
||||
}
|
||||
|
||||
public override void UpdateState(MoveStateManager mSM){
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public class NitroStateManager : NetworkBehaviour
|
|||
////
|
||||
|
||||
////Objects Sections
|
||||
GameObject parentObj; // Parent object
|
||||
public GameObject parentObj; // Parent object
|
||||
////
|
||||
|
||||
////Components Section
|
||||
|
|
@ -31,6 +31,8 @@ public class NitroStateManager : NetworkBehaviour
|
|||
public PlayerStats pStats; // Player Stats
|
||||
public MoveStateManager mSM; // move state manager
|
||||
public CoolDown driver; // cooldown driver
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
////
|
||||
|
||||
////Items Section
|
||||
|
|
@ -50,6 +52,7 @@ public class NitroStateManager : NetworkBehaviour
|
|||
capCol.enabled = true;
|
||||
parentObj = transform.parent.gameObject; // set parent object
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
//driver = GameObject.Find("Canvas").GetComponent<CoolDown>();
|
||||
////
|
||||
|
||||
|
|
@ -91,6 +94,7 @@ public class NitroStateManager : NetworkBehaviour
|
|||
|
||||
//updates current state and calls logic for entering
|
||||
currentState = state;
|
||||
animationManager.updateCurrentPriority();
|
||||
currentState.EnterState(this, previousState);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class OffenseKickState : OffenseBaseState
|
|||
|
||||
oSM.leg.SetActive(true); // activate leg
|
||||
kicked = false; // haven't kicked
|
||||
|
||||
oSM.animator.SetBool("IsKicking", true);
|
||||
//start kicking routine
|
||||
oSM.StartCoroutine(kicking(1f));
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@ public class OffenseKickState : OffenseBaseState
|
|||
legRotation = 0; // reset leg angle
|
||||
oSM.leg.transform.eulerAngles = new Vector3(legRotation, oSM.leg.transform.eulerAngles.y, oSM.leg.transform.eulerAngles.z); // rotate leg
|
||||
oSM.leg.SetActive(false); // reset leg angle
|
||||
oSM.animator.SetBool("IsKicking", false);
|
||||
}
|
||||
|
||||
public override void UpdateState(OffenseStateManager oSM){
|
||||
|
|
|
|||
|
|
@ -32,13 +32,15 @@ public class OffenseStateManager : NetworkBehaviour
|
|||
public CharacterController moveController; // Character Controller
|
||||
Rigidbody rB; // Players Rigidbody
|
||||
CapsuleCollider capCol; // Players Capsule Collider
|
||||
Animator animator; // Animation Controller
|
||||
public Animator animator; // Animation Controller
|
||||
////
|
||||
|
||||
////Scripts Section
|
||||
public PlayerStats pStats; // Player Stats
|
||||
public MoveStateManager mSM; // move state manager
|
||||
public AerialStateManager aSM; // aerial state manager
|
||||
//// AnimatorManagerScript
|
||||
private AnimationManager animationManager;
|
||||
////
|
||||
|
||||
void Awake(){
|
||||
|
|
@ -49,6 +51,7 @@ public class OffenseStateManager : NetworkBehaviour
|
|||
capCol = GetComponent<CapsuleCollider>(); // set Capsule Collider
|
||||
capCol.enabled = true;
|
||||
animator = GetComponent<Animator>(); // set animator
|
||||
animationManager = GetComponent<AnimationManager>();
|
||||
////
|
||||
|
||||
////Initialize Player Objects
|
||||
|
|
@ -97,6 +100,7 @@ public class OffenseStateManager : NetworkBehaviour
|
|||
|
||||
//updates current state and calls logic for entering
|
||||
currentState = state;
|
||||
animationManager.updateCurrentPriority();
|
||||
currentState.EnterState(this, previousState);
|
||||
}
|
||||
|
||||
|
|
|
|||
99
Assets/dAnimationManager.cs
Normal file
99
Assets/dAnimationManager.cs
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class dAnimationManager : MonoBehaviour
|
||||
{
|
||||
//current priority weight
|
||||
|
||||
//priority 0: priority value of offense and aerial state when not active (should never be current priority)-- is grounded/ incapactiatated, None, and cooldown
|
||||
//priority 1: ground state (nothing else active)
|
||||
//priority 2: aerial state (nothing above it)
|
||||
//priority 3: offense state (nothing above it)
|
||||
//priority 4: dash state (nothing above it)
|
||||
//priority 5: incapacitated state
|
||||
|
||||
//highest priority/currently active animations;
|
||||
private int currentPriority = 1;
|
||||
|
||||
//declare references to all the state managers
|
||||
private dOffenseStateManager offenseState;
|
||||
private dNitroStateManager nitroState;
|
||||
private dMoveStateManager moveState;
|
||||
private dDashStateManager dashState;
|
||||
private dAerialStateManager aerialState;
|
||||
|
||||
//declare reference to animator
|
||||
private Animator animator;
|
||||
|
||||
//retrieve all state managers
|
||||
private void Awake()
|
||||
{
|
||||
//initialize all state managers references
|
||||
offenseState = GetComponent<dOffenseStateManager>();
|
||||
nitroState = GetComponent<dNitroStateManager>();
|
||||
moveState = GetComponent<dMoveStateManager>();
|
||||
dashState = GetComponent<dDashStateManager>();
|
||||
aerialState = GetComponent<dAerialStateManager>();
|
||||
|
||||
animator = GetComponent<Animator>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//this function will be called everytime a state is switched. If the new state change would change the current priority number,
|
||||
//then the current priorty will changed
|
||||
//Note: if we ever want to have this manager keep track of current animation state and not just a priorty number,
|
||||
//then this will need to be changed later (also if we want to add additional animations)
|
||||
public void updateCurrentPriority(){
|
||||
int highestPriority;
|
||||
//check if MoveStateManager's current state is incapcitated state
|
||||
if (moveState.currentState.GetType() == typeof(dMoveRagdollState) || moveState.currentState.GetType() == typeof(dMoveRecoveringState)){
|
||||
highestPriority = 5;
|
||||
|
||||
}
|
||||
//if dash manager current state is dashing
|
||||
else if (dashState.currentState.GetType() == typeof(dDashDashingState)){
|
||||
highestPriority = 4;
|
||||
}
|
||||
|
||||
//check to see if offense manager current state is any state that's doesn't have a weight of 0;
|
||||
else if (offenseState.currentState.GetType() != typeof(dOffenseIncapacitatedState) && offenseState.currentState.GetType() != typeof(dOffenseNoneState) && offenseState.currentState.GetType() != typeof(dOffenseCooldownState)){
|
||||
highestPriority = 3;
|
||||
}
|
||||
//if current state in aerialManager is not grounded
|
||||
else if (aerialState.currentState.GetType() != typeof(dAerialGroundedState)){
|
||||
highestPriority = 2;
|
||||
}
|
||||
//ground movement is the only state with a animation right now
|
||||
else{
|
||||
highestPriority = 1;
|
||||
}
|
||||
//if highest priorty does not equal current, then a state changed has resulted in a new higher priorty animation
|
||||
if(highestPriority != currentPriority){
|
||||
currentPriority = highestPriority;
|
||||
animator.SetInteger("currentPriority", currentPriority);
|
||||
|
||||
}
|
||||
}
|
||||
//function will set the currentPriorty to the newPriority arguement.
|
||||
//Note: this function is mostly meant to exist if we need to force a new priorty for some reason, otherwise lgoci will be handled in check
|
||||
public void SetCurrentPriorityState(int newPriority){
|
||||
//set var to new prio
|
||||
currentPriority = newPriority;
|
||||
//set animator priority var
|
||||
animator.SetInteger("currentPriority", currentPriority);
|
||||
}
|
||||
|
||||
//return priority of a given state (stubbed out for not as not needed for current implementation but may be desired later)
|
||||
public int GetCurrentPriortyValue(){
|
||||
return 0;
|
||||
}
|
||||
|
||||
//retrieve highest priority value (current priorty should almost always be
|
||||
public int GetHighestPriorityValue(){
|
||||
return currentPriority;
|
||||
}
|
||||
|
||||
}
|
||||
11
Assets/dAnimationManager.cs.meta
Normal file
11
Assets/dAnimationManager.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: db0579f1149ac2f4295639b1c9430bf6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue
Block a user