我想访问一些游戏对象的组件我有两种方法:
FindGameObjectsWithTag("SomeTag");
访问许多GO,但这对某些GO不起作用我的问题是哪种方法对工作有益,优化和可持续 如果可能的话,除了上述两种方法之外,还可以给我替代。
答案 0 :(得分:0)
根据您的方法:
可能你认为不起作用的游戏对象会是 不活动,因为AFAIK,
FindGameObjectsWithTag
找到活动的游戏对象 仅
您应该根据正在考虑的游戏对象的数量做出决定:
如果它们有限:
您可以创建一个类似GameObjectControllerScript
的脚本(附加到相机或某个根游戏对象,因此它们只是此脚本的一个实例,[您正在建立一个可能的关系]),包含所有的参考游戏对象,您想要访问其特定组件并在您感兴趣的任何事件上访问组件,并对其执行某些操作。
如,
Camera
-- Root //<---- Attached controller script here that contains reference of StaticallyCreatedGameObject1..4
----StaticallyCreatedGameObject1
----StaticallyCreatedGameObject2
----StaticallyCreatedGameObject3
----StaticallyCreatedGameObject4
如果它们不受限制或动态生成:
这样你就不能保留引用了,所以你可以附加一个脚本说ChangeAngleScript
(对于正在考虑的游戏对象),它访问游戏对象的组件并使用函数{{1}执行一些操作},并从某个根游戏对象广播updateAngle
的消息。
updateAngle