C# 如何从unity中的另一个脚本获取枚举
我试图创建一个win condition脚本,从另一个脚本中提取枚举的状态,然后对其进行处理C# 如何从unity中的另一个脚本获取枚举,c#,unity3d,enums,C#,Unity3d,Enums,我试图创建一个win condition脚本,从另一个脚本中提取枚举的状态,然后对其进行处理 crowd.cs public enum crowdOptions {None, TeamA, TeamB}; public crowdOptions Crowd; Crowd = crowdOption.None; 我让人群做了很多事情,但假设设置为“无” winning.cs if (Crowd = crowdOption.None){ do something } else if
crowd.cs
public enum crowdOptions {None, TeamA, TeamB};
public crowdOptions Crowd;
Crowd = crowdOption.None;
我让人群做了很多事情,但假设设置为“无”
winning.cs
if (Crowd = crowdOption.None){
do something
} else if (Crowd = crowdOption.TeamA){
do something
} else {
do something
}
我尝试了一个GetComponent,并将群组的结果设置为一个新变量,但我认为我做得不对
public CrowdSway = GameObject.Find("crowdManager").GetComponent<CrowdManager>();
这也不起作用。为了从另一个脚本访问Crowd.cs类中的群组枚举变量,该脚本需要有群组对象的实例。例如:
public class Crowd : MonoBehaviour
{
public enum crowdOptions {None, TeamA, TeamB};
public crowdOptions crowdOpts;
}
public class Winning : MonoBehaviour
{
void Start()
{
Crowd myCrowd = new Crowd();
if(myCrowd.crowdOpts == crowdOptions.None)
{
//do something
}
}
}
或者,也可以将crowdOptions枚举变量设置为静态。然后,您可以通过名称从任何脚本访问它
public class Crowd : MonoBehaviour
{
public enum crowdOptions {None, TeamA, TeamB};
public static crowdOptions CrowdOptions;
}
public class Winning : MonoBehaviour
{
void Start()
{
if(CrowdOptions == Crowd.crowdOptions.None)
{
//do something
}
}
}
谢谢您将“公共众选项群组”更改为“公共众选项群组”,因此我必须在脑海中再次映射这一切。我得到一个错误,说众选项不存在。我使用了最高级的解决方案。void Start(){CrowdManager mycrowdmanager=new CrowdManager();if(myCrowd.crowdOpts==crowdOptions.None){print(“hello”);}我使用了第二个解决方案,但我必须执行if(Crowd.crowdOptions==Crowds.crowdOptions.None)Woops,对不起,我忽略了它!我已经编辑了答案。
public class Crowd : MonoBehaviour
{
public enum crowdOptions {None, TeamA, TeamB};
public static crowdOptions CrowdOptions;
}
public class Winning : MonoBehaviour
{
void Start()
{
if(CrowdOptions == Crowd.crowdOptions.None)
{
//do something
}
}
}