如果在Unity中满足条件,如何显示图像

时间:2016-01-16 23:38:40

标签: image user-interface unity3d

我有三个变量

无,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

1 个答案:

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

你明白了吗?

注意现在要容易多了,例如,稍后添加新值,以及检查代码的容易程度是多少。