因此,使用以下代码,我试图使两个图像的可见性消失。但是添加到画布上的图像不会改变可见性。
这是简单的代码:
public GameObject g;
public GameObject ga;
// Use this for initialization
void Start () {
g.GetComponent<CanvasRenderer>().cull = false;
ga.GetComponent<CanvasRenderer>().cull = false;
}
此处g和ga由编辑器分配。并且该脚本正在执行,因为它也已附加到游戏对象上。
更新-我不想使其处于非活动状态。 更多信息-我想在这些图像后面放置一些UI元素,以便使图像不可见,并在可能的情况下使canvas对象保持活动状态。谢谢。
答案 0 :(得分:3)
在Canvas下有两个Image,分别为“ Image”和“ Image(1)”,您想隐藏它们或使它们不可见而无需停用Canvas。
您有两个选择:
1 。停用“图片”和“图片(1)”。
找到持有两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
停用/隐藏它们
imgObj1.SetActive(false);
imgObj2.SetActive(false);
2 。禁用该组件。使“画布”下的图像无效的组件实际上是Image
或RawImage
组件。
找到持有两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
从每个获取图像或RawImage组件
Image img1 = imgObj1.GetComponent<Image>();
Image img2 = imgObj2.GetComponent<Image>();
禁用/隐藏它们
img1.enabled = false;
img2.enabled = false;
答案 1 :(得分:2)
API说
指示是否忽略此渲染器发出的几何。
布尔不是真的吗?
您不能使用
this.gameObject.SetActive(false);
要禁用游戏对象并使它不可见?