SceneKit中的SKScene

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SceneKit中的SKScene相关的知识,希望对你有一定的参考价值。

我正在尝试将一个动画SKScene添加到ARKit中的SCNScene。在查看WWDC 2017 session 609这似乎是可能的。在演示文稿中,代码看起来像这样......

//Get SpriteKit scene
let spriteKitScene = SKScene(fileNamed: "SpriteKitScene")

//Create plane geometry
let plane = SCNPlane(width: 10.0, height: 10.0)

//Set SpriteKit scene on the plane's material
plane.firstMaterial?.diffuse.contents = spriteKitScene

//If material double-sided, SpriteKit scene will show up on both sides of the plane
plane.firstMaterial?.isDoubleSided = true

//Create a SceneKit node for the plane
let sceneKitNode = SCNNode(geometry: plane)

//Add the Scenekit node to the SceneKit scene
scene.rootNode.addChildNode(sceneKitNode)

我可以做的事情:

  • 加载SKScene
  • 在关联的.swift文件中的sceneDidLoad()中添加精灵

我不能做的事情:

  • 使用SKScene的.swift文件中的任何传统方法,如didMove(to)或update()。
  • 在sceneDidLoad()中向场景中的节点添加动作

不确定我错过了什么。本季节的主持人展示了动画和互动的SK内容。

答案

想出这个。

didMove没有被调用,因为它在添加到diffuse.contents时不在响应者链中。

更新未被调用,因为SKScene在以这种方式添加时暂停。

以上是关于SceneKit中的SKScene的主要内容,如果未能解决你的问题,请参考以下文章

在空闲时,SKScene变得反应迟钝

是否可以像 SKScene 一样在 SCNScene 或 SCNNode 中使用“update(_ currentTime: TimeInterval)”?

SceneKit - 在着色器修改器中访问目标颜色以进行混合

使用导致内存泄漏的音频片段

如何在 SpriteKit 中的 SKScene 上显示 AdMob 横幅广告?

SKScene 中的 AVAudio 播放器出错