圆形 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,我必须明确设置 shouldEnableEffects
、backgroundColor
和 blendMode
.
skScene.shouldEnableEffects = true
skScene.backgroundColor = SKColor.clearColor()
skScene.blendMode = .Alpha
我正在尝试使用 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,我必须明确设置 shouldEnableEffects
、backgroundColor
和 blendMode
.
skScene.shouldEnableEffects = true
skScene.backgroundColor = SKColor.clearColor()
skScene.blendMode = .Alpha