0

我正在复制一个被触摸的图像。我在拖动克隆时将原始图像设置为非活动状态。

但是,我想从克隆脚本中销毁克隆图像时重新激活原始图像。

我可以在实例化它时将原始图像的引用添加到克隆中吗?我尝试使用原始搜索,GameObject original = transform.Find(transform.gameObject.name).gameObject;但我认为您找不到已停用的 GameObjects

public void OnPointerDown(PointerEventData eventData)
{
    if (this.gameObject.tag != "Clone")
    {
        clone = Instantiate(this.gameObject) as GameObject;
        clone.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, false);
        clone.transform.position = transform.position;
        clone.transform.localScale += new Vector3(0.5F, 0.5F, 0);
        clone.gameObject.tag = "Clone";
        clone.gameObject.name = transform.gameObject.name;

}
4

2 回答 2

1

您已经可以访问它...只需保存它。

public void OnPointerDown(PointerEventData eventData)
{
    if (this.gameObject.tag != "Clone")
    {
        clone = Instantiate(this.gameObject) as GameObject;
        clone.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, false);
        clone.transform.position = transform.position;
        clone.transform.localScale += new Vector3(0.5F, 0.5F, 0);
        clone.gameObject.tag = "Clone";
        clone.gameObject.name = transform.gameObject.name;
        clone.GetComponent<TheCloneScript>().original = this.gameObject; //that's it
    }
}
于 2019-08-13T02:58:27.533 回答
0

据我所知,您无法在场景中找到和引用非活动的gameobj。但我统一做了一些测试,试图找到不活动的游戏对象,我发现了这个:

如果原始 obj 有父对象,则可以找到父对象,然后像这样找到不活动的子对象:

GameObject parent = GameObject.Find("test");
GameObject inActiveChild = go.transform.Find("subTest").gameObject;
inActiveChild .SetActive(true);

或者您可以在原始 obj 仍处于活动状态时引用它,并在需要再次激活 obj 时使用它。

于 2019-08-13T00:06:33.613 回答