gpt4 book ai didi

unity3d - 团结 |查找具有指定父对象的子游戏对象

转载 作者:行者123 更新时间:2023-12-05 09:21:44 28 4
gpt4 key购买 nike

我必须找到具有指定父对象的子游戏对象。嗯。让我更详细地解释一下。我正在创建一个预制件,它有一个名为“state”的子游戏对象,当我玩游戏时,父游戏对象的名称会改变。我的意思是子游戏对象的名称始终相同,但父游戏对象的名称完全不同。我怎么知道哪个 child 在指定的 parent 之下。这并不像我想的那么容易。这是我试过的下面的代码。

go = Instantiate(Resources.Load("Prefabs/User")) as GameObject;
go.transform.FindChild("State").gameObject.name = userIndex.ToString();
go.transform.FindChild(userIndex.ToString()).gameObject.SetActive(false);

此代码无效,因为名称“state”等于所有。怎样修改更清晰有效。请给我一些想法。


例如,创建的四个预制件的名称分别为'a'、'b'、'c'和'd'。所有游戏对象都具有相同的子名称;'state'。我只想知道如何找到“a”(父游戏对象)下的“状态”(子游戏对象)。我对统一功能了解不多。我如何处理在所需 parent 下找到 child 。

最佳答案

您的问题有点令人困惑。这是我从你的问题中了解到的。如何查找在运行时更改名称的父对象的子对象。

您可以使用 FindChild 函数执行此操作,但还有另一种方法可以执行此操作。您只需使用查找 功能即可。

通过使用 Find 函数,当您在要查找的游戏对象名称前使用“/”时,Unity 会认为您正在查找子游戏对象。

例如,GameObject.Find("state") 将寻找名为stateparent GameObject。

如果您使用GameObject.Find(/Country/state),Unity 将搜索名为“state”的游戏对象,即一个名为“Country”的parent游戏对象中。

所以假设你的父游戏对象叫做Country,你的子游戏对象叫做State,你可以找到Country GameObject的 child

GameObject.Find("/Country/State");

或者像这样

string nameOfParentObject = "ParentObject";
string nameOfChildObject = "ChildObject";

string childLocation = "/" + nameOfParentObject + "/" + nameOfChildObject;
GameObject childObject = GameObject.Find (childLocation);

如果您需要更频繁地从父级搜索子游戏对象,您甚至可以将其放入函数中

GameObject findChildFromParent (string parentName, string childNameToFind)
{
string childLocation = "/" + parentName + "/" + childNameToFind;
GameObject childObject = GameObject.Find (childLocation);
return childObject;
}

现在,只要您想在父游戏对象中搜索子游戏对象,只需调用返回游戏对象的函数即可。

假设您的父类的名称是 Jinbom 但后来更改为运行时期间的“国家/地区”,而您的子对象名称仍为“州”。您可以通过这样做找到“状态”游戏对象

GameObject childObject = findChildFromParent ("Country", "State");

要获取在运行时更改的游戏对象的名称,您只需使用 yourgameObject.name

您可以在运行时执行此操作

GameObject childObject = findChildFromParent (yourgameObject.name, "State");

关于unity3d - 团结 |查找具有指定父对象的子游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250225/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com