【问题标题】:2d overlay elements not rendering over Scene Kit scene未在 Scene Kit 场景上渲染的 2d 叠加元素
【发布时间】:2015-07-31 21:03:15
【问题描述】:

我使用 SKScene 作为 Scene Kit 场景的叠加层,但是当我将子节点添加到 SKScene 时,它​​不会渲染到屏幕上。这是我的代码(截断):

import SceneKit
import SpriteKit

class GameViewController {

var scene = SCNScene()
var overlay = SKScene()
var expand = SKSpriteNode(imageNamed: "expand")
var trash = SKSpriteNode(imageNamed: "trash")
var palette = SKSpriteNode(imageNamed: "palette")

    override func viewDidLoad() {
        super.viewDidLoad()
        // set up scene

        let sceneView = view as! SCNView
        sceneView.backgroundColor = SKColor.blackColor()
        sceneView.autoenablesDefaultLighting = true
        sceneView.showsStatistics = false

        setupScene()

        sceneView.scene = scene

        sceneView.pointOfView = cameraNode
        sceneView.overlaySKScene = overlay

        setupEnvironment()
        setupHud()
    }

    func setupHud() {
        var sizeOfModifiers = (expand.frame.size.width + trash.frame.size.width + palette.frame.size.width) / 2
        trash.anchorPoint = CGPointMake(0, 0)
        palette.anchorPoint = CGPointMake(0, 0)
        expand.anchorPoint = CGPointMake(0, 0)
        trash.position = CGPointMake((view.frame.width / 2) - sizeOfModifiers, 0)
        palette.position = CGPointMake(trash.position.x + trash.frame.size.width, 0)
        expand.position = CGPointMake(palette.position.x + trash.frame.size.width, 0)
        overlay.addChild(trash)
        overlay.addChild(palette)
        overlay.addChild(expand)
    }
}

从我在这里看到的情况来看,代码是正确编写的。图像正在加载,但它不会在场景中的 3d 元素上渲染。

【问题讨论】:

    标签: swift sprite-kit overlay scenekit


    【解决方案1】:

    我过早地问了这个问题。根据我的研究,SKScene 需要是一个单独的类。我犯了一个小学生错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      相关资源
      最近更新 更多