본문 바로가기
유니티 최고/유니티 AR

유니티(Unity) AR foundation을 이용한 액터 생성(Spawn)

by Lee_story_.. 2023. 3. 15.
728x90

 

이번에 사용해볼 기능은 Plane 기능과 Raycast 기능입니다!

위처럼 만들 계획!

 

먼저 참고한 블로그!

 

유니티 AR Foundation 평면 인식 오브젝트 생성

이번 포스팅은 저번 AR Foundation 설정 방법에 이어서 평면을 인식하고 터치를 통하여 오브젝트를 생성하는 방법에 대하여 포스팅 합니다. 1. 아래와 같이 하이어라키 창에 XR - AR Session, XR - AR Session

simpleneed.tistory.com

 

 

바로 시작해 보겠습니다. 

 

우선 ar foundation 세팅이 끝나셔야 실행가능합니다

 

세팅이 끝나셨다면

 

AR session Origin

AR session

 

이렇게 두개가 있을텐데 여기서 Origin에 아래와 같이 plane과 raycast 를 추가해줍시다.

끝? 

여기까지만 해도 평면인식은 자동으로 지원해줍니다! 

 

이제 터치를 이용해서 바닥에 설치해봅시다.

 

먼저 레이캐스트와 스폰할 프리팹을 들고옵시다

public GameObject placeObject;
    public ARRaycastManager raycastMgr;
    private List<ARRaycastHit> hits = new List<ARRaycastHit>();

 

 

다음으로는 레이케스트와 평면이 부딪히는 지점에 프리팹을 생성하는 함수!

 void Update()
    {
        if (Input.touchCount == 0) return;

        Touch touch = Input.GetTouch(0);
        if (touch.phase == TouchPhase.Began)
        {
            if (raycastMgr.Raycast(touch.position, hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon))
            {
                Instantiate(placeObject, hits[0].pose.position, hits[0].pose.rotation);
            }
        }
    }

 

마지막으로 방금 스크립을 추가해줍시다

 

여기까지가 끝!

 

 

여기서 AR camera에 occlusion manager을 넣어주면 깊이에따라 가려짐까지 구현가능합니다

 

 

 

 

틀린점이 있다면 댓 달아주세요!

댓글