通过脚本隐藏/取消隐藏Unity3D中的对象
我想在一切开始之前把我的部分场景隐藏起来, 假设我有一些通过脚本隐藏/取消隐藏Unity3D中的对象,unity3d,gameobject,Unity3d,Gameobject,我想在一切开始之前把我的部分场景隐藏起来, 假设我有一些ishiden(我正在尝试查找)属性,我在之前或场景的第一帧设置为true 在某个时刻,我想取消隐藏并触发动画,我知道如何触发动画。 我发现隐藏对象的唯一方法是将其设置为: SetActive(false); 它确实隐藏了,但是当我稍后在脚本中尝试使用 GameObject.Find("gameObjectName"); 它返回null。 那么,通过脚本隐藏或隐藏GameObject的正确方法是什么呢。 这不是网格,因此它没有网格渲染器
ishiden
(我正在尝试查找)属性,我在之前或场景的第一帧设置为true
在某个时刻,我想取消隐藏并触发动画,我知道如何触发动画。
我发现隐藏对象的唯一方法是将其设置为:
SetActive(false);
它确实隐藏了,但是当我稍后在脚本中尝试使用
GameObject.Find("gameObjectName");
它返回null。
那么,通过脚本隐藏或隐藏GameObject
的正确方法是什么呢。
这不是
网格
,因此它没有网格渲染器。使用渲染器。已启用
bool enabled;
Description
Makes the rendered 3D object visible if enabled.
示例代码:
public class ExampleClass : MonoBehaviour {
void Show() {
renderer.enabled = true;
}
void Hide() {
renderer.enabled = false;
}
void HideChildren()
{
Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>();
foreach ( Renderer lRenderer in lChildRenderers)
{
lRenderer.enabled=false;
}
}
void ShowChildren()
{
Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>();
foreach ( Renderer lRenderer in lChildRenderers)
{
lRenderer.enabled=true;
}
}
}
公共类示例类:单行为{
无效显示(){
renderer.enabled=true;
}
void Hide(){
renderer.enabled=false;
}
无效隐藏儿童()
{
Renderer[]lChildRenderers=gameObject.GetComponentsInChildren();
foreach(lChildRenderers中的渲染器lRenderer)
{
lRenderer.enabled=false;
}
}
void ShowChildren()
{
Renderer[]lChildRenderers=gameObject.GetComponentsInChildren();
foreach(lChildRenderers中的渲染器lRenderer)
{
lRenderer.enabled=true;
}
}
}
setactive不影响查找,检查对象名称是否正确且唯一这是名称:XwingScene他是唯一的。没有其他对象像这样调用,当我在设置SetActive(false)后尝试访问它时,它返回null`这不是网格,所以它没有网格渲染器。`你是说它有子对象,其中有网格吗?每个游戏对象都有一个渲染器?GameObject.renderer是每个游戏对象的一部分。但并非每个游戏对象都有渲染器,在这种情况下,渲染器为空。好消息是,任何可见的场景对象(如您所述)都必须具有渲染器。