Mac Plus

Hello Swift

ARKit의 기본도형 표현하기

ARKit 기본도형

  • ARKit에는 기본적으로 나타낼수 있는 모양의 도형이 있다. ```c //평면 직사각형 let plane = SCNPlane(width: 20.0, height: 20.0) plane.cornerRadius = 5.0 plane.cornerSegmentCount = 2 //모서리를 몇개의 segment로 만들것인가

//정육면체 let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)

//피라미드모양 let pyramid = SCNPyramid(width: 0.1, height: 0.1, length: 0.1)

//구체(공모양) let sphere = SCNSphere(radius: 0.1)

//원통형 모양 let cylinder = SCNCylinder(radius: 0.1, height: 0.2)

//삼각뿔 모양 - topRadius를 bottomRadius와 같게 하면 cylinder과 같은 모양이 나온다. let cone = SCNCone(topRadius: 0.1, bottomRadius: 0.1, height: 0.1)

//원통인데 가운데가 뚫린 let tube = SCNTube(innerRadius: 0.1, outerRadius: 0.1, height: 0.2)

//길쭉한 원통형 모양 let capsule = SCNCapsule(capRadius: 0.1, height: 0.5)

//가운데가 뚫린 도넛모양 let torus = SCNTorus(ringRadius: 0.2, pipeRadius: 0.1)

  
        
###### 전체소스 (Sample - text보여주기)
```c
import ARKit

class ViewController: UIViewController{
    
    //ARSCNView - SceneKit으로 AR경험을 표시 할 수 있는 뷰
    @IBOutlet weak var sceneView: ARSCNView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let text = SCNText(string: "Hello World", extrusionDepth: 1) //텍스트 블록을 나타냅니다.

        let node = SCNNode()
        node.position = SCNVector3(-0.15, 0, -1)
        node.scale = SCNVector3(0.01, 0.01, 0.01)
        node.geometry = text
        sceneView.scene.rootNode.addChildNode(node)
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        //ARWorldTrackingConfiguration - 장치의 방향과 위치를 추적하고 카메라를 통해서 실제 표면을 감지한다.
        let configuration = ARWorldTrackingConfiguration()
        sceneView.session.run(configuration)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        sceneView.session.pause()
    }    
}