OldBlueWater/BlueWater/Assets/PixelHeroes/Scripts/CharacterScripts/Character.cs

53 lines
2.3 KiB
C#
Raw Normal View History

2023-09-26 06:24:34 +00:00
using System;
using UnityEngine;
namespace Assets.PixelHeroes.Scripts.CharacterScripts
{
/// <summary>
/// The main character script.
/// </summary>
public class Character : Creature
{
public Animator Animator;
public CharacterController CharacterController;
public void SetState(AnimationState state)
{
foreach (var variable in new[] { "Idle", "Ready", "Walking", "Running", "Crawling", "Jumping", "Climbing", "Blocking", "Dead" })
{
Animator.SetBool(variable, false);
}
switch (state)
{
case AnimationState.Idle: Animator.SetBool("Idle", true); break;
case AnimationState.Ready: Animator.SetBool("Ready", true); break;
case AnimationState.Walking: Animator.SetBool("Walking", true); break;
case AnimationState.Running: Animator.SetBool("Running", true); break;
case AnimationState.Crawling: Animator.SetBool("Crawling", true); break;
case AnimationState.Jumping: Animator.SetBool("Jumping", true); break;
case AnimationState.Climbing: Animator.SetBool("Climbing", true); break;
case AnimationState.Blocking: Animator.SetBool("Blocking", true); break;
case AnimationState.Dead: Animator.SetBool("Dead", true); break;
default: throw new NotSupportedException();
}
//Debug.Log("SetState: " + state);
}
public AnimationState GetState()
{
if (Animator.GetBool("Idle")) return AnimationState.Idle;
if (Animator.GetBool("Ready")) return AnimationState.Ready;
if (Animator.GetBool("Walking")) return AnimationState.Walking;
if (Animator.GetBool("Running")) return AnimationState.Running;
if (Animator.GetBool("Crawling")) return AnimationState.Crawling;
if (Animator.GetBool("Jumping")) return AnimationState.Jumping;
if (Animator.GetBool("Climbing")) return AnimationState.Climbing;
if (Animator.GetBool("Blocking")) return AnimationState.Blocking;
if (Animator.GetBool("Dead")) return AnimationState.Dead;
return AnimationState.Ready;
}
}
}