微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 跳转到节点层次结构中的特定SKNode

我注意到SKNode方法children和childNodeWithName:名称暗示只返回查询节点正下方的子节点的结果.即[根儿童];将返回包含节点@ [CUBE1,CUBE2,CUBE3]的NSArray.

在下图中,我想从ROOT(SKScene)级别下载到SPHERE2,以便我可以快速访问子节点.我希望[root childNodeWithName:@“SPHERE2”];将遍历整个层次结构并返回指向SPHERE2的指针

我的问题:是否有一些我错过的东西让我跳到指定点的节点树(即使用节点名称)

我可以使用属性来存储指向树中重要位置的指针,然后使用它们来访问和处理任何子节点,这是一个选项……

解决方法

您可以使用高级搜索下的 SKNode documentation中描述的高级搜索语法.

这将从根节点开始,以递归方式搜索名为“SPHERE2”的节点的整个节点树:

SKNode* sphere2 = [root childNodeWithName:@"//SPHERE2"];

如果您知道特定节点的路径,您也可以非常轻松地使用它:

SKNode* triangle3 = [root childNodeWithName:@"/CUBE3/SPHERE2/TRIANGLE3"];

应该注意的是,如果您经常需要这些节点,则应将它们缓存在__weak ivar或weak属性中,因为按名称搜索节点需要一些时间.

原文地址:https://www.jb51.cc/iOS/330771.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐