Unity

Unity AR World와 3D World 같이 쓸 때 주의사항

washble2 2026. 4. 25. 04:02

 

AR을 껐다 켰다하며 유니티 3D World를 같이 쓸 때 주의할 점 입니다.

 

AR을 껐다 켜는 스크립트 참고는 아래 링크에서 하시면 됩니다.

https://blog.naver.com/washble2/223958898798

 

 

 

1. AR월드의 Position과 3D World의 Position차이

AR월드의 Position과 3D World의 Position이 다르기 때문에 이를 보간하는 작업을 해줘야 됩니다.

아래의 링크를 참고하시면 됩니다.

https://blog.naver.com/washble2/224085744801

 

AR Camera(AR Face) 와 Main Camera 같이 쓸 때 위치 변화

Unity 6000.0.59f2버전을 사용했습니다 프로젝트에서 Main Camera와 AR Camera를 같이 바꿔가며 써야...

blog.naver.com

 

 

 

2. AR을 실행시킬 때 Camera 세팅

단순히 AR Session과 3D Object들을 분리해두는것으로는 해결이 되지 않습니다.

안드로이드에서는 별 문제 없이 작동합니다만 iOS에서는 AR World와 3D World가 따로놀기 시작합니다...

 

해결방법 입니다.

- 3D World의 것들을 보는 OverlayCamera를 준비하고 여기서 culling mask에서 AR관련 것들을 빼버립니다(Layer사용)

 

- XR Origin 하위의 AR Camera는  Culling mask에서 AR관련된 것들만 볼 수 있도록 해줍니다.

 

 

- Culling Mask작업이 끝났으면 AR Camera Stack에 Overlay Camera를 넣어줍니다.

(참고로 Stack은 URP버전에 있습니다 Built-in버전에는 없어요)

 

 

 

AR을 사용하게 될 때 AR Camera와, Overlay Camera를 활성화 해주면 AR과 3D World가 함께 잘 나오게 됩니다.

 

 

 

 

3. iOS에서 AR을 껐다 켤 때 처음 킨 AR의 위치로만 계속 작동 오류 해결

이는 처음 AR실행시킬 때의 위치값을 Reset시켜줘야합니다.

따라서 AR Start 시킬 때 arSession.Reset();함수를 작동시켜줍니다.

위 함수를 작동 시키면 AR을 켤 때마다 다시 위치정보를 가져와서 제대로 위치값을 가져옵니다.

    private void SetActiveARSession(bool value)
    {
        arSession.transform.parent.gameObject.SetActive(value);
        arSession.enabled = value;
        ARStarted = value;
        
        if(value) { arSession.Reset(); }
    }