jen*_*dan 4 sprite-kit skscene swift
我有2d级别,所以我把它分成更多的.sks文件.我有"GameScene",我可以通过拖放操作在场景编辑器中加入它们.它创建了SKReferenceNodes.我成功完成了这一切.但我想在代码中需要时懒洋洋地加载这些部分(据说这是一个很好的做法).我失败了.
这是代码的特殊部分:
if let nextPart = SKReferenceNode(fileNamed: "Scene2_city2") {
if self.childNodeWithName("Scene2_city2") == nil {
self.addChild(nextPart)
}
}
Run Code Online (Sandbox Code Playgroud)
"Scene2_city2"是.sks文件的名称,也是文件内的Scene名称.
运行代码我收到一个错误:
***终止应用程序由于未捕获的异常'无法添加正文,已存在于世界中',原因:'无法添加正文类型:表示对象:[名称:'Scene2_city2'框架:{{ - 0,-0},{1024 ,768}}锚:{0,0}],已经存在于一个世界中
这很奇怪,因为我在添加之前先检查一下.
问题:如何以编程方式将SKReferenceNode添加到SKScene中?
编辑:这是bitbucket上的简单示例项目.添加参考场景以进行点击.
我找到了一个解决方法,结果发现创建SKReferenceNode使用该URL方法时没有问题.例如:
let path = NSBundle.mainBundle().pathForResource("SpaceShip", ofType: "sks")
let spaceShip = SKReferenceNode (URL: NSURL (fileURLWithPath: path!))
addChild(spaceShip)
Run Code Online (Sandbox Code Playgroud)
我做了一点挖掘,它出现在7.3.1 vs 7.2.1中,当创建SKReferenceNode使用fileNamed它现在返回一个可选项.打开SKScene时,如果您尝试将其作为子项添加到现有场景中,那么您将获得当然会抛出错误的内容.
添加了一个快速的7.3测试项目https://github.com/cocojoe/SKReferenceNodeIssue/tree/workaround
请注意,您在Apple论坛上引用了我的帖子.我填写了一个月前的错误报告,根据过去的经验,这些可能需要一段时间才能看到.
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |