首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何统一地从另一个脚本中获得一个枚举

如何统一地从另一个脚本中获得一个枚举
EN

Stack Overflow用户
提问于 2016-01-15 21:58:42
回答 1查看 6.5K关注 0票数 1

我正在尝试创建一个win条件脚本,从一个不同的脚本中提取一个枚举的状态,然后用它做一些事情。

代码语言:javascript
复制
crowd.cs

public enum crowdOptions {None, TeamA, TeamB};
public crowdOptions Crowd;

Crowd = crowdOption.None;

我让人群做了一堆事情,但我要说的是,一切都没有了。

代码语言:javascript
复制
winning.cs

if (Crowd = crowdOption.None){
     do something
} else if (Crowd = crowdOption.TeamA){
     do something
} else {
   do something
}

我尝试了一个GetComponent,并将人群的结果设置为一个新变量,但我认为我做得不对

代码语言:javascript
复制
public CrowdSway = GameObject.Find("crowdManager").GetComponent<CrowdManager>();

我也试过

代码语言:javascript
复制
if (CrowdManager.Crowd = crowdOptions.None) {
        print("none");
    } else {
        print("hmmmmmm");
    }

那也没用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-15 22:04:24

为了从另一个脚本访问crowd.cs类中的人群枚举变量,该脚本需要有一个拥挤对象的实例。例如:

代码语言:javascript
复制
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枚举变量保持静态。然后您可以从任何脚本中按名称访问它。

代码语言:javascript
复制
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
        }
     }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34820577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档