Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从unity中的另一个脚本获取枚举_C#_Unity3d_Enums - Fatal编程技术网

C# 如何从unity中的另一个脚本获取枚举

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

我试图创建一个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 = 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
        }
     }
}