- Home /
How do I call an enum from another script?
I have different states of a 2D character controller in a public enum (C#) and I'm wondering how I can call them in a seperate script so I can set them to play the appropriate Mecanim animations.
public enum PlayerState
{
Grounded,
Jumping,
Falling,
Crouching
}
Then in another script, do something like:
if(PlayerState == Jumping)
{
anim.SetBool(isJumping, true);
}
I've been having a hard time trying to set that up, I've never worked with enums in this context before.
Answer by gselfish · Jun 22, 2015 at 09:38 PM
Well you have to prefix the name of the enum with the name of the class (i.e., the script) it's defined in. If you want to avoid this, you can always define the enum before class declaration.
In any case, the code will look something like this:
if(playerState == ClassName.PlayerState.Jumping)
{
anim.SetBool(isJumping, true);
}
Where playerState is a variable of type PlayerState, and ClassName is the class in which you define Playerstate.
Answer by DanielDollerup · Jun 23, 2015 at 11:28 AM
Hey, if you place your enum in Global space, this means outside of classpace and make sure you make it public, you can see it cross classes.
using UnityEngine;
using System.Collections;
public enum TestEnum { Test1, Test2, Test3 } <-- This is where to place it
public class Test : MonoBehaviour
{
TestEnum myEnum;
void Start()
{
}
void Update()
{
if (myEnum == TestEnum.Test1)
{
// do something cool
}
}
}
Hope it helps!
Super useful, thanks for posting this. I found this answer while learning about enums and it helped.
Thanks! This works great for making type dropdown selection menus in unity on my prefabs. Thanks for sharing.
Answer by saadali211 · Apr 16, 2020 at 04:37 PM
enums are by default static type so you can access the by ClassName.enumName
=> Manager.Players
public class Manager : MonoBehaviour
{
public enum Players
{
player1 = 1,
player2 = 2
}
}
Your answer
Follow this Question
Related Questions
How Activating a boolean fron another script(C#) 1 Answer
Accessing Enumeration from another script issue 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers