我有三个变量
无,TeamA,TeamB
我只是在进行一些调试,并希望显示一个图像,具体取决于选择哪个。
用于选择人群的代码。
public enum crowdOptions {None, TeamA, TeamB};
public static crowdOptions CrowdOptions;
if(Random.value < .33){
CrowdOptions = crowdOptions.None;
} else if (Random.value > .66){
CrowdOptions = crowdOptions.TeamA;
} else {
CrowdOptions = crowdOptions.TeamB;
}
我知道我需要在CrowdOptions下面添加它,但我不确定代码是什么或如何将它连接到图像。
我用一种颜色制作了UI图像框;无=白色,A队=红色,B队=蓝色。
这是答案。我需要关闭游戏对象:
if(Random.value < .33){
CrowdOptions = crowdOptions.None;
GameObject.Find("None").GetComponent<Image>().enabled =true;
GameObject.Find("TeamA").GetComponent<Image>().enabled =false;
GameObject.Find("TeamB").GetComponent<Image>().enabled =false;
} else if (Random.value > .66){
CrowdOptions = crowdOptions.TeamA;
GameObject.Find("None").GetComponent<Image>().enabled =false;
GameObject.Find("TeamA").GetComponent<Image>().enabled =true;
GameObject.Find("TeamB").GetComponent<Image>().enabled =false;
} else {
CrowdOptions = crowdOptions.TeamB;
GameObject.Find("TeamNone").GetComponent<Image>().enabled =false;
GameObject.Find("TeamA").GetComponent<Image>().enabled =false;
GameObject.Find("TeamB").GetComponent<Image>().enabled =true;
}
然后GameObjects(图像)的名称为None,TeamA,TeamB
答案 0 :(得分:0)
只需使用SetActive
执行此操作 - 请阅读手册或google上的1000长篇教程。
我不知道为什么我这样做但是这里有更多的代码提示
1)从三个中选择一个随机 INTEGER 并使用它,
2)每次都不要随便打电话! 选择一次并使用该值。这是一个非常基本的错误,可能导致巨大的错误。
int r = Random.Range(0,3)
// means either 0,1 or 2
// READ MANUAL if you don't understand why
3)当你必须像这样打开“一件事”时,更好的计划是全部关闭,然后开启。这是一种更可靠,更清晰的编程方式。
void TurnAllOff()
{
teamA ... disabled
teamB ... disabled
teamC ... disabled
}
void TurnOnOneRandomItem()
{
int r = Random.Range(0,2)
TurnAllOff()
if ( r == 0 ) teamA .. enabled
if ( r == 1 ) teamB .. enabled
if ( r == 2 ) teamC .. enabled
}
你明白了吗?
注意现在要容易多了,例如,稍后添加新值,以及检查代码的容易程度是多少。