Tu veux placer une vue classique sous la sceneView, pour avoir une superposition ? Je présume que c'est réalisable avec remplissant le fond de la scène avec la couleur transparente. Je dois filer, je ferai un essai plus tard.
a
Ce n'est pas bien compliqué à faire. Dans le template SceneKit, Xcode utilise la vue principale du ViewControleur pour afficher SceneKit.
let sceneView = self.view as! SCNView
On peut aussi créer une vue spécialisée et la déclarer comme fille de self.view. Cela qui laisse la vue principale disponible pour un autre usage.
a
// let sceneView = self.view as! SCNView
// Création de la sceneView comme une vue fille de la vue principale
let sceneView = SCNView(frame: self.view.frame)
sceneView.backgroundColor = UIColor.clear
self.view.addSubview(sceneView)
self.view.backgroundColor = UIColor.cyan
qa
Si le fond de la sceneView est rempli avec la couleur transparente, elle laisse voir ce qui se trouve en dessous : la vue principale, "peinte" en bleu cyan pour l'exemple.
Mais c'est tout aussi simple de le positionner dans le coin haut gauche de l'écran
// SKLAbel dans le coin Haut/Gauche de la SKScene
let px = skLabel.frame.size.width/2.0
let py = skLabel.frame.size.height/2.0
skLabel.position = CGPoint(x: px, y: py)
Ou le coin Bas/Gauche :
// SKLAbel dans le coin Bas/Gauche
let px = skLabel.frame.size.width/2.0
let py = sceneLabel.frame.height - skLabel.frame.size.height/2.0
skLabel.position = CGPoint(x: px, y: py)
Réponses
Ca marche !
a
Ce n'est pas bien compliqué à faire. Dans le template SceneKit, Xcode utilise la vue principale du ViewControleur pour afficher SceneKit.
On peut aussi créer une vue spécialisée et la déclarer comme fille de self.view. Cela qui laisse la vue principale disponible pour un autre usage.
a
qa
Si le fond de la sceneView est rempli avec la couleur transparente, elle laisse voir ce qui se trouve en dessous : la vue principale, "peinte" en bleu cyan pour l'exemple.
q
Et voila, il suffit de 3 lignes ..
Excellent !
Mais les Labels sont forcément centrés sur les faces du cube ? Tu penses que c'est possible d'écrire le texte dans le coin d'une face ?
J'étais passé à côté de ça...
C'est du SpriteKit. La position d'un node SpriteKit (SKLabelNode, SKSpriteNode, etc..) par rapport à sa scène est défini par sa propriété .position.
Dans la fonction créerMateriau() je place le label au centre de la SKScene.
Mais c'est tout aussi simple de le positionner dans le coin haut gauche de l'écran
Ou le coin Bas/Gauche :
EDIT : Grilled par l'animal cornu
Merci !
De rien. Je suis en train de préparer un tutoriel sur SpriteKit. Tu m'aides à entrainer mes muscles pédagogiques.
Ah sympa ! Préviens quand il sera disponible !