如何在 Unity 中启用克隆对象的子对象?
How to enable a children of a clone object in Unity?
我将我的克隆保存在 Unity3D 和 C# 中的 GUI 操作列表中。
button = Instantiate(BlackBox, Vector2.zero, Quaternion.identity) as GameObject;
buttons.Add(button);
如何在 this situation 中启用 ArrowRight?
我想到达 ArrowRight 以启用它。我尝试了这种方法的变体:
buttons[index].gameObject.transform.GetChild(1).gameObject.SetActive(true);
但它不起作用。 Objects' components.
我很快就得到了这段代码来解决你的问题。也许不是最好的解决方案,但如果我正确理解你的问题,它应该会起作用。
using UnityEngine;
public class blackBox : MonoBehaviour {
public bool toggleRight;
// Update is called once per frame
void Update () {
if(toggleRight)
{
foreach(Transform child in transform)
{
if(child.name.Equals("ArrowRight"))
{
child.gameObject.SetActive(!child.gameObject.activeSelf);
}
}
toggleRight = false;
}
}
}
这只是一个演示,撕下它以满足您的需要。
将其放在黑盒游戏对象上,然后使用 foreach 激活或停用具有所述名称的游戏对象。
已解决:
而不是:
buttons[index].gameObject.transform.GetChild(1).gameObject.SetActive(true);
使用:
buttons[index].transform.GetChild(1).gameObject.SetActive(true);
我将我的克隆保存在 Unity3D 和 C# 中的 GUI 操作列表中。
button = Instantiate(BlackBox, Vector2.zero, Quaternion.identity) as GameObject;
buttons.Add(button);
如何在 this situation 中启用 ArrowRight?
我想到达 ArrowRight 以启用它。我尝试了这种方法的变体:
buttons[index].gameObject.transform.GetChild(1).gameObject.SetActive(true);
但它不起作用。 Objects' components.
我很快就得到了这段代码来解决你的问题。也许不是最好的解决方案,但如果我正确理解你的问题,它应该会起作用。
using UnityEngine;
public class blackBox : MonoBehaviour {
public bool toggleRight;
// Update is called once per frame
void Update () {
if(toggleRight)
{
foreach(Transform child in transform)
{
if(child.name.Equals("ArrowRight"))
{
child.gameObject.SetActive(!child.gameObject.activeSelf);
}
}
toggleRight = false;
}
}
}
这只是一个演示,撕下它以满足您的需要。
将其放在黑盒游戏对象上,然后使用 foreach 激活或停用具有所述名称的游戏对象。
已解决:
而不是:
buttons[index].gameObject.transform.GetChild(1).gameObject.SetActive(true);
使用:
buttons[index].transform.GetChild(1).gameObject.SetActive(true);