C# can';t使用(CanvasRenderer.cull)函数使图像游戏对象不可见
因此,通过下面的代码,我试图使两个图像的可见性消失。但是添加到画布上的图像不会改变可见性 下面是简单的代码:C# can';t使用(CanvasRenderer.cull)函数使图像游戏对象不可见,c#,unity3d,C#,Unity3d,因此,通过下面的代码,我试图使两个图像的可见性消失。但是添加到画布上的图像不会改变可见性 下面是简单的代码: public GameObject g; public GameObject ga; // Use this for initialization void Start () { g.GetComponent<CanvasRenderer>().cull = false; ga.GetComponent<CanvasRenderer>().c
public GameObject g;
public GameObject ga;
// Use this for initialization
void Start () {
g.GetComponent<CanvasRenderer>().cull = false;
ga.GetComponent<CanvasRenderer>().cull = false;
}
公共游戏对象g;
公共游戏对象遗传算法;
//用于初始化
无效开始(){
g、 GetComponent().cull=false;
ga.GetComponent().cull=false;
}
这里g和ga是从编辑器分配的。而脚本也作为附加到游戏对象的脚本执行
这是场景保持不变的前后截图:
更新-我不想让它处于非活动状态。
更多信息-我想在这些图像后面放置一些UI元素,以便使图像不可见,并且如果可能的话,保持画布对象处于活动状态。谢谢。API上说
指示是否忽略此渲染器发射的几何体
这不是真的吗
你能不能不用
this.gameObject.SetActive(false);
要禁用游戏对象并使其不可见,API说
指示是否忽略此渲染器发射的几何体
这不是真的吗
你能不能不用
this.gameObject.SetActive(false);
要禁用游戏对象并使其不可见?您在画布下有两个名为“图像”和“图像(1)”的图像,您希望在不取消激活画布的情况下隐藏它们或使它们不可见 您有两个选择: 1。取消激活“图像”和“图像(1)” 找到包含两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
取消激活/隐藏它们
imgObj1.SetActive(false);
imgObj2.SetActive(false);
img1.enabled = false;
img2.enabled = false;
2。禁用组件。在画布下显示该图像的组件实际上是or组件 找到包含两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
从每个组件中获取图像或RawImage组件
Image img1 = imgObj1.GetComponent<Image>();
Image img2 = imgObj2.GetComponent<Image>();
画布下有两个名为“Image”和“Image(1)”的图像,您希望在不取消激活画布的情况下隐藏它们或使它们不可见 您有两个选择: 1。取消激活“图像”和“图像(1)” 找到包含两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
取消激活/隐藏它们
imgObj1.SetActive(false);
imgObj2.SetActive(false);
img1.enabled = false;
img2.enabled = false;
2。禁用组件。在画布下显示该图像的组件实际上是or组件 找到包含两个图像的两个游戏对象
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
GameObject imgObj1 = GameObject.Find("Image");
GameObject imgObj2 = GameObject.Find("Image (1)");
从每个组件中获取图像或RawImage组件
Image img1 = imgObj1.GetComponent<Image>();
Image img2 = imgObj2.GetComponent<Image>();
谢谢你的评论。我不想使用SetActive(false)。这是可行的,但我也想隐藏画布,这有协同程序。因此,我们在寻找其他方法。我不知道关闭第一行几何体渲染器该怎么办。我不想使用SetActive(false)。一些背景信息在这里可能会有所帮助。也许是这样:?如果你必须处理多个UI元素来隐藏,也许可以将其放入画布组?然后canvasgroup.alpha=0感谢您提供的信息和链接,我会在尝试这些链接后进行更新。谢谢您的评论。我不想使用SetActive(false)。这是可行的,但我也想隐藏画布,这有协同程序。因此,我们在寻找其他方法。我不知道关闭第一行几何体渲染器该怎么办。我不想使用SetActive(false)。一些背景信息在这里可能会有所帮助。也许是这样:?如果你必须处理多个UI元素来隐藏,也许可以将其放入画布组?然后canvasgroup.alpha=0感谢您提供的信息和链接,我会在尝试这些链接后进行更新。我不明白您的意思。您的最后一个问题被标记为重复问题,重复问题显示隐藏对象的方法(取消激活对象或禁用组件)。为什么还要再问这个问题呢?答案显示了两种方式(SetActive和canvasRenderer),但这个问题是关于那些不起作用的,也不是以所描述的方式起作用的,这是一种简单的方式。谢谢。“但是这个问题是关于那些不起作用的。”我想你是新来的,但它不是那样的。如果上一个问题或副本中的解决方案对您不起作用,请编辑您的问题并添加不起作用的新代码,然后解释新问题是什么。之后,您可以使用@username通知留下答案的人或结束问题的人该问题不起作用,他们将根据您的编辑回复您。谢谢提供信息。我不明白您的意思。您的最后一个问题被标记为重复问题,重复问题显示隐藏对象的方法(取消激活对象或禁用组件)。为什么还要再问这个问题呢?答案显示了两种方式(SetActive和canvasRenderer),但这个问题是关于那些不起作用的,也不是以所描述的方式起作用的,这是一种简单的方式。谢谢。“但是这个问题是关于那些不起作用的。”我想你是新来的,但它不是那样的。如果上一个问题或副本中的解决方案对您不起作用,请编辑您的问题并添加不起作用的新代码,然后解释新问题是什么。之后,您可以使用@username通知留下答案的人或结束问题的人该问题不起作用,他们将根据您的编辑回复您。谢谢提供信息。