목록언어/iOS (31)
Machineboy空

https://betterprogramming.pub/take-an-arview-snapshot-in-realitykit-93b620cf99b3 Take an ARView Snapshot in RealityKitBuild augmented reality iOS applicationsbetterprogramming.pubhttps://developer.apple.com/documentation/realitykit/arview/snapshot(savetohdr:completion:)-66jzu snapshot(saveToHDR:completion:) | Apple Developer DocumentationTakes a screenshot.developer.apple.com샘플코드import SwiftUIim..

오늘의 구현모드에 따라 제스처가 가능한 레이어를 구분하고 싶다!즉, 큐브모드에서는 큐브에만 제스처가 적용이 되고, 구를 눌러도 아무런 제스처를 취할 수 없으며구 모드에서는 구에만 제스처가 적용이 되게 하고 싶다.arView.installGestures([.all], for: cubeModel)arView.installGestures([], for: cubeModel) 단순히 installGestures에 빈배열을 할당하는 것으로 제스처가 해제되지 않더라. Unity의 LayerMask와 같은 개념이 RealityKit의 CollisionFilter인듯한데 한번 살펴보자!CollisionFilterA set of masks that determine whether entities can collide du..

누끼 딴 사진을 3D 공간에 넣어 제스처를 적용하고 싶다!image로 texture만드는 방법texture를 투명하게 설정하는 방법 등을 소개할 예정이다!2D 인듯 3D인 Plane의 특성Plane 축을 잘 생각하며 코드를 짜야 한다!기존 translation의 경우 좌우가 y축, 위아래가 z축과 연동되어 있기 때문에Plane 생성 시, width와 depth 활용!let planeMesh = MeshResource.generatePlane(width: 1, depth: 1) UnlitMaterial의 Texture 속성 설정UnlitMaterial : A material that doesn’t respond to lights in the scene.material.color = .init(tint:.w..

다음은 textField에 입력된 값을 MeshResource.generateText함수를 사용해 3D모델로 만드는 간단한 예제이다!import SwiftUIimport ARKitimport RealityKitimport Combinestruct ContentView: View { @State private var text: String = "" var body: some View { VStack { ARViewContainer(text: $text) .ignoresSafeArea() // TextField VStack(alignment: .trailing, spaci..
기본 제스처의 한계문제점1: 기본으로 제공하는 rotation의 경우 Y축 기준으로만 회전하는데, 상하로도 즉 X축 기준으로도 회전시켜 윗면을 보고 싶다!문제점2: 그리고 scale조정하는 제스처와 rotate 제스처가 같아 동작 구분이 필요하다. 문제점2: pinch와 rotate의 구분 두 손가락을 사용하는 pinch를 통해 scale을 조절하고 한 손가락을 사용하는 pan을 통해 rotate를 시키려니많은 이들이 수차례 시행착오를 거쳐 완성했을 제스처 종류와 그에 따른 동작들에 대한 정립을 무시한 바보가 된 기분이 들었다. 이미 수차례 유저테스트를 거쳐 완성되었을 제스처와 동작간 매핑일 것이라 생각하여,사용자가 가장 매끄럽게 사용하기 위해서는 기본 제스처들을 잘 사용하는 것이 맞겠다고 판단했다.그..

ARView에 큐브를 넣고 여러 가지 제스처를 통해 그 큐브를 살펴보는 기능을 만드려고 한다.EntityGestures의 종류 - 기본으로 제공하는 제스처 Realitykit에서 제공하는 기본 제스처들은 다음과 같다.rotation: 멀티 터치로 물체 회전scale: pinch 동작으로 물체 스케일 조절translation: 싱글 터치로 물체 이동https://developer.apple.com/documentation/realitykit/arview/entitygestures ARView.EntityGestures | Apple Developer DocumentationThe set of possible entity gesture recognizers.developer.apple.comEntityGe..

A기기 - 비컨 역할picker로 선택한 UUID로 비콘이 생성되도록 바꾸었다.B기기 - 비컨 탐지기 역할감지된 UUID에 따라 색이 바뀌도록 하였다. 마주한 문제class에서 변경된 값을 view에서 알아차리지 못하여, 화면이 갱신되지 않는다.beaconDetector Class에서 감지하는 값이 바뀔 때 마다 view의 색이 바뀌어야 한다.원인 분석1) ObservedObject 선언이 잘못되었나?beacon: view에서 바뀌는 값을 class 에 넘겨주는 구조였고detactor: class에서 변경된 값을 view에서 읽어서 표시하는 구조 class 내부에 @Published 되는 값이 변경될 때 .onChange나 다른 모디파이어 사용 없이도view는 알아서 갱신되어야 마땅한데 안된다.@Stat..