使用关键字Unity查找GameObjects

如何在Unity中找到带有关键字的GameObjects?

实际上,我有很多GameObject这样命名:

  • 混凝土楼[289483]
  • 混凝土楼[289487]
  • 墙壁部分[293291]
  • 部分[321043]

我已经创建函数来获取对象的ID(在[]括号内),因为它是GameObject名称的相关部分。

ID应该是唯一的,但我不确定它是什么!

现在,我希望有一个这个原型的function:

public static GameObject[] getObjectsWithIdentifier(int identifier) 

它将返回具有参数中给出的标识符的所有对象。 所以它就像一个搜索function。

GameObject.Find(name) ,据我所知,只搜索对象的确切名称。

谢谢你的帮助 !

我认为你指的是GameObject的标签?

http://docs.unity3d.com/ScriptReference/GameObject.FindGameObjectsWithTag.html

这仍然使用直接字符串,但它不是GameObject的名称,所以它稍微管理得多。 您可以将标签分配给GameObjects,最常见的是通过Prefab。

http://answers.unity3d.com/questions/54040/can-i-get-a-tags-element-number.html

这表明要将Unity3d标记转换为int / enum类型,那么您必须自己管理它。 但是使用Dictionary或其他东西应该相当简单。

最后,这是我提出的解决方案。

这就是我所做的,当然它是迭代的,但我想我会在你第一次使用这个函数时创建一次初始全局数组。

 public static Object[] findObjectsFromIdentifier(int identifier) { Object[] objects = GameObject.FindObjectsOfType( typeof( GameObject ) ); return objects.Where( obj => getIdentifierFromObject( obj ) == identifier ).ToArray(); }