hi all im trying to make an animation script for my character. it turns out my method uses enums, then casting them into strings.
but unity throws an internal error. whenever i try to make the optional enum parameters for my setAnimations function.
using UnityEngine;
using System.Collections;
public class Calnan : MonoBehaviour
{
public Transform Camera;
public Transform CamPoint;
public string CurrentState;
public enum ProneState
{
Null,
Idle,
Crouch,
Standing,
}
public enum ActState
{ Null,
Fire,
Jump,
Aim
}
public enum MoveState
{ Null,
Walk,
Run,
StrafeLeft,
StrafeRight,
}
ProneState Prone;
MoveState MoveDir;
ActState Act;
// Use this for initialization
void Awake()
{
Prone = ProneState.Standing;
Act = ActState.Null;
MoveDir = MoveState.Null;
}
void Start()
{
animation.GetClip(ProneState.Idle.ToString());
}
// Update is called once per frame
void Update()
{
animation.Play();
CheckState();
Camera.position = CamPoint.position;
}
void CheckState()
{
bool CrouchMode = false;
if (Input.GetButton("Fire1"))
{
SetAnimation(ProneState.Null,ActState.Fire, MoveState.Null);
}
if (Input.GetButton("Crouch") )
{
if (!CrouchMode)
{
SetAnimation(ProneState.Crouch, ActState.Null, MoveState.Null);
Prone = ProneState.Crouch;
CrouchMode = true;
}
CrouchMode = false;
}
else
{
SetAnimation(ProneState.Idle, ActState.Null, MoveState.Null);
}
}
public void SetAnimation (ProneState prone , ActState Action , MoveState Move )
{
if (prone == ProneState.Null)
{
prone = Prone;
}
if (Action == ActState.Null)
{
Action = Act;
}
if (Move == MoveState.Null)
{
Move = MoveDir;
}
string newAnim1 = prone.ToString();
string newAnim2 = Action.ToString();
string newAnim3 = Move.ToString();
string newAnim = newAnim1 + newAnim3 + newAnim2;
animation.clip = animation.GetClip(newAnim);
CurrentState = newAnim;
}
}
being a internal error im convinced that unity blocks or doesn’t support them for what ever reason, any work arounds?