SceneKit中的overlaySKScene中的缩放问题

时间:2018-10-02 17:36:53

标签: swift sprite-kit scenekit

我在SceneKit Project中有一个场景,具有固定的“顶视图”正交摄影机。 camera.orthographicScale为540(= 1080(scnView.height)/ 2)。我有scnNodes作为桌子和球。另外,我有一个overlaySKScene,由该场景上的一些精灵节点(目标元素)组成。有了此设置,它就可以在所有iPhone屏幕上正常工作。

scnView.frame.size = CGSize(width: 1920, height: 1080)

let camera = SCNCamera()
camera.zFar = 1500
camera.usesOrthographicProjection = true
camera.orthographicScale = 540

let plane = SCNPlane(width: 1920, height: 1080)
plane.firstMaterial?.diffuse.contents = "Table" //as image
tableBackGround = SCNNode(geometry: plane)
tableBackGround.position.z = -0.1
self.rootNode.addChildNode(plane)

不幸的是,当我在iPad Air 2(屏幕分辨率:2048 x 1536)上打开该应用程序时,“ Table” scnNode看起来被放大了,overlaySKScene中的所有sprite节点看起来都没有缩放,并且超出了坐标。

这是我尝试过的;

我将camera.orthographicScale从540调整为768(1536(高度)/ 2),它缩小了,我开始在场景中看到Table的所有角落。但是overlaySKScene节点仍然是断断续续的。但是SceneKit节点很好,而且所有节点的坐标都准确。

此外,我已经如下调整了overlaySKScene的缩放模式,

overlayScene.scaleMode = SKSceneScaleMode.aspectFit // i have tried all other SKSceneScaleMode options, aspectFit was the best.

overlaySKScene子画面节点变好了,但是它们仍然不在正确的坐标中(它有位偏移)。当我定位scnNode Balls时,“精灵节点目标”不在正确的位置。

如何解决此问题?我认为我需要在“ overlaySKScene的缩放比例”和“ camera.orthographicScale”之间建立关联,还是我需要调整用于目标协调的公式?感谢您的支持...

0 个答案:

没有答案