圆形 SKShapeNode 在 SceneKit 中使用时显示为正方形 overlaySKScene 使用 fillColor 时

Circular SKShapeNode is displayed as square when used in SceneKit overlaySKScene when using fillColor

我正在尝试使用 overlaySKScene 为我的 SceneKit 场景构建一个叠加层。但是由于某种原因,当我设置 fillColor.

时,圆形 SKShapeNode 会立即显示为正方形

SKView 一起使用时,相同的节点将正确显示。

简单的游乐场示例(需要 "Run in Full Simulator"):

import UIKit
import SpriteKit
import SceneKit
import XCPlayground

let skScene = SKScene(size: CGSizeMake(500, 300))
skScene.scaleMode = .AspectFit

let node = SKShapeNode(circleOfRadius: 50)
node.position = CGPoint(x: 250, y: 150)
node.fillColor = SKColor.redColor()
node.strokeColor = SKColor.grayColor()
skScene.addChild(node)

let scnScene = SCNScene()
let scnView = SCNView(frame: CGRect(x: 0, y: 0, width: 500, height: 300))
scnView.scene = scnScene
scnView.overlaySKScene = skScene

XCPShowView("Live View 1", scnView)

let skView = SKView(frame: CGRect(x: 0, y: 0, width: 500, height: 300))
skView.presentScene(skScene)

XCPShowView("Live View 2", skView)

在撰写本文时,我找到了解决方案。我以编程方式创建 SKScene,我必须明确设置 shouldEnableEffectsbackgroundColorblendMode.

    skScene.shouldEnableEffects = true
    skScene.backgroundColor = SKColor.clearColor()
    skScene.blendMode = .Alpha