Dans presque tous les tutoriels d'ARKit, il semble que nous utilisions toujours ARPlane for floor.Utilisation de SCNFloor dans ARKIt
let planeGeometry = SCNPlane(width:CGFloat(planeAnchor.extent.x), height:CGFloat(planeAnchor.extent.z))
let planeNode = SCNNode(geometry:planeGeometry)
planeNode.position = SCNVector3(x:planeAnchor.center.x, y:0, z:planeAnchor.center.y)
planeNode.transform = SCNMatrix4MakeRotation(-Float.pi/2, 1.0, 0, 0)
Et si vous vouliez un plan infini (pour projeter des ombres)? J'ai essayé SCNFloor et le résultat est bizarre - le sol suspendu dans les airs:
let planeGeometry = SCNFloor()
let planeNode = SCNNode(geometry:planeGeometry)
planeNode.position = SCNVector3(planeAnchor.center.x, 0, planeAnchor.center.z)
Je l'ai fait une recherche Google et le seul résultat que je suis venu avec est-ce (qui ne fonctionne pas non plus): https://github.com/arirawr/ARKit-FloorIsLava/blob/master/FloorIsLava/ViewController.swift
Est-ce que SCNFloor() fonctionne dans ARKit? Sinon, que puis-je faire pour créer un gros plan?
Pourquoi un arbitraire -1? –
@LimThyeChean juste pour le test. Vous devriez utiliser la détection de surface et trouver d'abord les coordonnées du plancher réel. Ensuite, vous utiliserez la coordonnée 'Y' du plancher réel. –