본문 바로가기

Unity AR12

AR Interaction으로 상호작용 설정 AR Interaction 추가적인 스크립트 제어 없이 GameObj를 터치하여 생성하고, Scale, Position, Rotation값을 변경할 수 있는 Interaction들을 살펴본다. 필수적인 XR Interaction Manager를 추가한다. AR Placement Interactable를 추가하고 Interaction Manager에 XR Interaction Manager추가, XR Origin할당 , Placement Prefab에 생성할 게임 오브젝트를 추가한다. 게임 오브젝트를 하나 생성하고 그 안에 증강할 큐브를 넣는다. 게임 오브젝트에 AR Selection Interactable, AR Scale Interactable, AR Translation Interactable, AR.. 2024. 3. 30.
Gaze Camera AR 3D Object에 인포를 달아준 뒤, 시점이 물체를 향했을 때, 인포를 띄운다. 또한 움직일 때, 인포가 카메라를 바라보게 설정한다. 3D오브젝트인 큐브를 생성하고 하위 오브젝트로 인포를 넣는다. Transform으로 인포 오브젝트의 Transform값을 받아온다. Lerp를 이용해 인포가 Vector3,zero에서 one까지 선형보간법(Linear Interpolation)으로 커지게 만든다. AR Camera에 달아줄 코드이다. 위의 InfoBehavior의 스크립트를 리스트로 받아온다. 만약 카메라 위치에서 앞쪽 방향으로 ray를 쏜 후 무언가 감지되었다면 OpenInfo함수를 실행한다. 감지가 되지 않는다면 CloseAll을 이용해 닫는다. 카메라의 위치를 받아오고 인포 오브젝트가 카메라를 향하.. 2024. 2. 8.
AR Indicator deploy 평면 지표 배치 AR Plane Manager를 이용해 Plane을 인식하고 인식한 평면 위에 지표를 배치한다. Plane을 생성하고 지표 material를 붙인다. Start() ARRatcastManager를 받아오고 이 게임오브젝트의 하위 첫 번째(인덱스 0)의 transform을 받아 indicator에 넣는다. 이후 indicator를 비활성화한다. Update() ray를 스크린의 중앙(Vector2)로 설정한다. if(레이케스트를 쏘고, PlaneWithinPolygon에 부딛쳤다면) { 그 처음 부딛친 위치값을 hitPose에 넣는다. 이 게임 오브젝트의 위치, 로테이션 값을 hitPose로 설정한다. if(indicator가 비활성화라면) { indicator를 활성화시킨다. } } 2024. 2. 5.
On click을 이용한 Scene 변경, Video 증강 결과 Main Scene Scene변경을 위한 버튼을 만들기 위해 Main Scene에 Canvas, Button을 만든다. SceneManager를 만들어 스크립트를 추가한다. Main Scene으로 가는 함수와 Scene의 이름을 찾아 가는 함수를 생성한다. 버튼이 눌려졌을 때, On Click일 때 GotoScene함수를 호출하도록 설정한다. Hello AR Scene 기본적인 AR Plane Manager, PointCloud Manager를 이용한 Scene이다. Tracking Scene 고양이 사진을 인식해 귀여운 고양이 영상을 증강시키는 씬이다. 영상을 띄울 Quad를 생성하고, Video Player에 띄울 영상을 추가한다. 인식시킬 이미지를 추가할 때 jpg형식이 이미지를 추가해야한다... 2024. 1. 16.
AR Tracked Image Manager를 이용한 오브젝트 회전 결과물 빨간 스포츠카 이미지를 인식하면 그 위에 해당 오브젝트를 증강시킨다. AR session origin에 AR Tracked Image manager컴포넌트를 추가한다. 이후 Reference Image Library에 이미지를 추가 한 뒤 Tracked Image Prefab에 증강시킬 프리펩을 선택한다. 물체의 회전을 위해 화면을 터치할 때 회전되도록 스크립트를 작성한다. 2024. 1. 16.
AddForce를 이용한 구체 던지기 ARRaycast,Rigidbody를 이용해 구체를 생성하고 앞 방향으로 발사하도록했다 nomalized는 목적지-현재위치를 통해 단위벡터를 구한다. 단위벡터란 크기는 1로 고정이며 방향을 나타낸다.즉 방향을 알기 위해 사용된다. 따라서 nomalized는 정규화된 이동될 방향을 나타낸다. magnitude는 Vector3의 길이혹은 크기를 반환한다. 이렇게 구한 길이를 통해 두 좌 표 사이의 거리를 구하거나 물체의 속력을 구할 수 있다. (목적지 - 현재위치).magnitude = 남은 거리 ShootBallObj 1. 물체의 생성 2.물체의 포지션값 설정 3.물체의 벡터값(나아갈 벡터값)설정 4.물체의 중력작용 5. 중력작용의 힘 적용 2024. 1. 14.