Ios 跳转到节点层次结构中的特定节点
我注意到SKNode方法Ios 跳转到节点层次结构中的特定节点,ios,objective-c,sprite-kit,sknode,Ios,Objective C,Sprite Kit,Sknode,我注意到SKNode方法children和childNodeWithName:,顾名思义,它们只从查询节点正下方的子节点返回结果。i、 e.[根子项]将返回一个包含节点的@[CUBE1,CUBE2,CUBE3]的NSArray 在下面的图中,我想从根(SKScene)级别下到SPHERE2,以便快速访问该节点的子节点。我希望[root childNodeWithName:@“SPHERE2”]将遍历整个层次结构并返回指向SPHERE2的指针 我的问题:我是否错过了一些可以让我在指定点跳入节点树
children
和childNodeWithName:
,顾名思义,它们只从查询节点正下方的子节点返回结果。i、 e.[根子项]
将返回一个包含节点的@[CUBE1,CUBE2,CUBE3]
的NSArray
在下面的图中,我想从根(SKScene)级别下到SPHERE2,以便快速访问该节点的子节点。我希望[root childNodeWithName:@“SPHERE2”]代码>将遍历整个层次结构并返回指向SPHERE2的指针
我的问题:我是否错过了一些可以让我在指定点跳入节点树(即使用节点名称)的内容
我可以使用属性来存储指向树中重要位置的指针,然后使用这些指针来访问和处理任何子节点,因此这是一个选项…您可以使用高级搜索下的中描述的高级搜索语法
这将在整个节点树中递归搜索名为“SPHERE2”的节点,从根节点开始:
SKNode* sphere2 = [root childNodeWithName:@"//SPHERE2"];
如果您知道特定节点的路径,也可以非常轻松地使用该路径:
SKNode* triangle3 = [root childNodeWithName:@"/CUBE3/SPHERE2/TRIANGLE3"];
需要注意的是,如果您经常需要这些节点,您应该将它们缓存在\uu-weak
ivar或weak
属性中,因为按名称搜索节点需要一段时间。很好,我不知道我怎么会错过这些内容。非常感谢Steffen,感谢您的提醒。好的,但是当我们不知道“我”在树中的位置时,如何查找节点“我”的所有名为“MyChildren”的子节点?您可以使用“//Me/MyChildren”在整个树中搜索父节点名为“我”的名为“MyChildren”的节点。