我正在尝试创建一个win条件脚本,从一个不同的脚本中提取一个枚举的状态,然后用它做一些事情。
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>();我也试过
if (CrowdManager.Crowd = crowdOptions.None) {
print("none");
} else {
print("hmmmmmm");
}那也没用。
发布于 2016-01-15 22:04:24
为了从另一个脚本访问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
}
}
}https://stackoverflow.com/questions/34820577
复制相似问题