126 lines
2.8 KiB
C#
126 lines
2.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class basicAnimatorController : customCharacterControllerBase
|
|
{
|
|
[Header ("Custom Settings")]
|
|
[Space]
|
|
|
|
public string horizontalAnimatorName = "Horizontal";
|
|
public string verticalAnimatorName = "Vertical";
|
|
public string stateAnimatorName = "State";
|
|
|
|
public string groundedStateAnimatorName = "Grounded";
|
|
public string movementAnimatorName = "Movement";
|
|
public string speedMultiplierAnimatorName = "SpeedMultiplier";
|
|
|
|
[Space]
|
|
[Header ("Other Settings")]
|
|
[Space]
|
|
|
|
public int jumpState = 2;
|
|
public int movementState = 1;
|
|
public int fallState = 3;
|
|
public int deathState = 10;
|
|
|
|
public int currentState;
|
|
|
|
int horizontalAnimatorID;
|
|
int verticalAnimatorID;
|
|
|
|
int stateAnimatorID;
|
|
int groundedStateAnimatorID;
|
|
|
|
int movementAnimatorID;
|
|
|
|
bool valuesInitialized;
|
|
|
|
void Start ()
|
|
{
|
|
initialiveValues ();
|
|
}
|
|
|
|
void initialiveValues ()
|
|
{
|
|
if (!valuesInitialized) {
|
|
horizontalAnimatorID = Animator.StringToHash (horizontalAnimatorName);
|
|
verticalAnimatorID = Animator.StringToHash (verticalAnimatorName);
|
|
|
|
stateAnimatorID = Animator.StringToHash (stateAnimatorName);
|
|
groundedStateAnimatorID = Animator.StringToHash (groundedStateAnimatorName);
|
|
movementAnimatorID = Animator.StringToHash (movementAnimatorName);
|
|
|
|
valuesInitialized = true;
|
|
}
|
|
}
|
|
|
|
public override void updateCharacterControllerState ()
|
|
{
|
|
updateAnimatorFloatValueLerping (horizontalAnimatorID, turnAmount, animatorTurnInputLerpSpeed, Time.fixedDeltaTime);
|
|
|
|
updateAnimatorFloatValueLerping (verticalAnimatorID, forwardAmount, animatorForwardInputLerpSpeed, Time.fixedDeltaTime);
|
|
|
|
updateAnimatorBoolValue (groundedStateAnimatorID, onGround);
|
|
|
|
updateAnimatorBoolValue (movementAnimatorID, playerUsingInput);
|
|
}
|
|
|
|
public override void updateCharacterControllerAnimator ()
|
|
{
|
|
|
|
}
|
|
|
|
public override void updateMovementInputValues (Vector3 newValues)
|
|
{
|
|
|
|
}
|
|
|
|
public override void updateHorizontalVerticalInputValues (Vector2 newValues)
|
|
{
|
|
|
|
}
|
|
|
|
public override void activateJumpAnimatorState ()
|
|
{
|
|
updateAnimatorIntegerValue (stateAnimatorID, jumpState);
|
|
|
|
currentState = jumpState;
|
|
}
|
|
|
|
public override void updateOnGroundValue (bool state)
|
|
{
|
|
base.updateOnGroundValue (state);
|
|
|
|
if (currentState == 1) {
|
|
if (!onGround) {
|
|
updateAnimatorIntegerValue (stateAnimatorID, 3);
|
|
|
|
currentState = 3;
|
|
}
|
|
} else {
|
|
if (onGround) {
|
|
updateAnimatorIntegerValue (stateAnimatorID, 1);
|
|
|
|
currentState = 1;
|
|
} else {
|
|
|
|
// if (currentState == 2) {
|
|
// updateAnimatorIntegerValue (stateAnimatorID, 20);
|
|
//
|
|
// currentState = 20;
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void setCharacterControllerActiveState (bool state)
|
|
{
|
|
base.setCharacterControllerActiveState (state);
|
|
|
|
if (state) {
|
|
initialiveValues ();
|
|
}
|
|
}
|
|
}
|