我注意到 SKNode 方法children
and childNodeWithName:
顾名思义,仅返回查询节点正下方子节点的结果。 IE。[root children];
将返回一个NSArray
包含节点@[CUBE1, CUBE2, CUBE3]
.
在下图中,我想从 ROOT (SKScene) 级别向下到达 SPHERE2,以便我可以快速访问该节点的子节点。我本来希望[root childNodeWithName:@"SPHERE2"];
将遍历整个层次结构并返回指向 SPHERE2 的指针
我的问题:有没有我错过的东西可以让我在指定点跳转到节点树(即使用节点名称)
我可以使用属性来存储指向树中重要位置的指针,然后使用它们来访问和处理任何子节点,所以这是一个选项......
您可以使用中描述的高级搜索语法SKNode文档 https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKNode_Ref/index.html#//apple_ref/occ/cl/SKNode,在高级搜索下。
这将从根节点开始递归地搜索整个节点树以查找名为“SPHERE2”的节点:
SKNode* sphere2 = [root childNodeWithName:@"//SPHERE2"];
如果您知道特定节点的路径,您也可以很容易地使用它:
SKNode* triangle3 = [root childNodeWithName:@"/CUBE3/SPHERE2/TRIANGLE3"];
应该注意的是,如果您经常需要这些节点,则应该将它们缓存在__weak
伊瓦尔或weak
属性,因为按名称搜索节点需要一点时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)