2016-05-27 13 views
1

Ich fügte eine SKScene, die ein SKSpriteNode-Bild enthält, zu einem SCNNode hinzu, aber das Bild sieht außerhalb der Grenzen des SCNode (Gesichtsknoten) gestreckt. Wie würde ich das Bild innerhalb der Grenzen des SCNode-Gesichtes anzeigen?SKSpriteNode Bild Textur sieht gestreckt, wenn zu SCNNode hinzugefügt

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 

Das Bild wird in der faceSKScene korrekt angezeigt. Sobald ich die faceSKScene zu den Inhalten von SKNode hinzufüge, deckt es den gesamten SKNode ab, aber das meiste Bild wird nicht angezeigt. Es sieht so aus, als könnte es gedehnt werden, aber ich bin mir nicht sicher.

Antwort

1

Das erste, was Sie überprüfen sollten, ist, dass Ihr Paket tatsächlich 2x und möglicherweise 3x Bilder enthält. Diese Ladelogik legt eine SKSpriteNode-Größe fest, diese Eigenschaft wird jedoch in Punkten ausgedrückt, während die Textur typischerweise in Pixeln ausgedrückt wird. Wenn Sie ein 2x Bild haben, dann ist die Punktgröße 1/2 der Pixelgröße. Stellen Sie außerdem sicher, dass die Breite und Höhe Ihrer Bilder gleichmäßig sind, da Bilder mit einer ungeraden Größe bei den Größen 1x, 2x, 3x nicht gut wiedergegeben werden.