添加到SCNNode时,SKSpriteNode图像纹理看起来很拉伸

时间:2016-05-27 19:13:12

标签: sprite-kit scenekit skspritenode scnnode

我将包含SKSpriteNode图像的SKScene添加到SCNNode,但是图像看起来在SCNode(面部节点)的边界之外伸展。如何在SCNode面的边界内显示图像?

let faceSCNNode = scnScene.rootNode.childNodeWithName("faceSCNNodeID", recursively:true)  

let sprite = SKSpriteNode()
sprite.texture = SKTexture(image: UIImage(data: imageData)!)
sprite.size.width = self.texture!.size().width
sprite.size.height = self.texture!.size().height
sprite.position = CGPoint(x:CGRectGetMidX(frame), y:CGRectGetMidY(frame));

let faceSKScene = SKScene(size: sprite.size)
faceSKScene!.addChild(sprite)

faceSCNNode?.geometry?.firstMaterial?.diffuse.contents = faceSKScene

图像在faceSKScene中正确显示。将faceSKScene添加到SKNode的内容后,它将覆盖整个SKNode,但大部分图像不会显示。看起来它可能会被拉伸,但我不确定。

1 个答案:

答案 0 :(得分:1)

你应该检查的第一件事是你的包实际上包括2x和3x缩放图像。此加载逻辑设置SKSpriteNode大小,但该属性是以点为单位,而纹理通常以像素为单位。如果您有2x图像,则磅值是像素大小的1/2。此外,检查图像的宽度和高度是否均匀,因为奇数尺寸的图像在1x,2x,3x刻度尺寸下无法很好地发挥作用。