簡體   English   中英

如何從另一個腳本統一獲取枚舉

[英]how to get an enum from another script in unity

我試圖創建一個獲勝條件腳本,從另一個腳本中獲取枚舉的狀態,然后對其進行處理。

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並將Crowd的結果設置為一個新變量,但是我認為我做的不正確

public CrowdSway = GameObject.Find("crowdManager").GetComponent<CrowdManager>();

我也試過

if (CrowdManager.Crowd = crowdOptions.None) {
        print("none");
    } else {
        print("hmmmmmm");
    }

那也不起作用。

為了從另一個腳本訪問您的race.cs類中的Crowd枚舉變量,該腳本需要具有Crowd對象的實例。 例如:

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
        }
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM