C# Unity SetActive(true)最初设置为false后不工作?

C# Unity SetActive(true)最初设置为false后不工作?,c#,unity3d,C#,Unity3d,使用UnityEngine; 使用系统集合; 公共班级舞会:单一行为{ 私人刚体; 公共矢量3发射速度; 私人音频源音频源; //用于初始化 无效开始() { GameObject.Find(“触摸面板”).SetActive(false); 刚体=GetComponent(); rigidbody.IsKinetic=真; //禁用触摸控制 audiosource=GetComponent(); } //每帧调用一次更新 无效更新() { } 公共无效启动球(矢量3通过速度) { 刚体速度=传

使用UnityEngine;
使用系统集合;
公共班级舞会:单一行为{
私人刚体;
公共矢量3发射速度;
私人音频源音频源;
//用于初始化
无效开始()
{
GameObject.Find(“触摸面板”).SetActive(false);
刚体=GetComponent();
rigidbody.IsKinetic=真;
//禁用触摸控制
audiosource=GetComponent();
}
//每帧调用一次更新
无效更新()
{
}
公共无效启动球(矢量3通过速度)
{
刚体速度=传递速度;
}
public void DropBall()//它附加到一个按钮
{
rigidbody.isKinetic=false;
GameObject.Find(“触摸面板”).SetActive(true);
}
}
正如你在上面看到的,我在启动时禁用了“触摸屏”功能。但是关于DropBall功能(记住它是附在按钮上的),我已经将它设置为active,但它不工作。有人能帮我吗?谢谢

编辑:-此脚本附加在“球”上。球被固定在一个按钮上。
“触摸面板”是画布的子项。

您的问题是,当您禁用
触摸面板时,
游戏对象。“查找”
将找不到它,因此您将无法再次启用它

此函数仅返回活动的游戏对象

您需要将您的
触摸面板设置为
公共游戏对象myPanel
,并在inspector中分配它,然后您可以启用和禁用它

myPanel.SetActive(false);
myPanel.SetActive(true);

这个脚本是在什么对象上的?这个脚本是附加在球上的,球是附加在按钮上的。可能显示您的层级结构图像会提供更多信息。@SamratLuitel如果他们回答您的问题,请开始接受答案。就是怎么做。你也可以对解决你问题的其他答案这样做。@程序员谢谢,我刚刚了解了这一点,我该怎么办。创建一个公共游戏对象并附加它there@SamratLuitel没错,你应该这样做。非常感谢你。我终于解决了。我觉得自己真的很愚蠢
myPanel.SetActive(false);
myPanel.SetActive(true);