[英]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.