SomeDay1332
'언젠가' 시니어 개발자
SomeDay1332
전체 방문자
19,564
오늘
14
어제
68
  • 분류 전체보기
    • 언젠가 유니티(Unity) 개발
      • 유니티 튜토리얼
      • 볼트 (= Bolt)
      • 포스트프로세싱 (= Post Proc..
      • 시네머신 (= CineMachine)
    • 언젠가 증강현실(AR) 개발
      • AR 파운데이션 (AR Foundation)
      • 뷰포리아 (Vuforia)
      • 컴퓨터 비전 (Open CV)
      • 인공지능 딥러닝 (AI Deep Le..
      • 스파크 AR (Spark AR)
    • 언젠가 서버 개발
      • 윤성우의 TCP_IP 소켓 프로..
    • 언젠가 메타버스 개발
      • 로블록스 (Roblox)
      • 제페토 (Zepeto)
    • 언젠가 플러터(Flutter) 개발
    • 언젠가 언리얼(Unreal) 개발
    • Anything
      • 우아한 테크톡 리뷰

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

  • [유니티_뷰포리아(Vuforia)] 코⋯
    2020.02.29
    [유니티_뷰포리아(Vuforia)] 코⋯
  • [유니티_AR파운데이션(AR Found⋯
    2020.07.23
    [유니티_AR파운데이션(AR Found⋯
  • [유니티_AR파운데이션(AR Found⋯
    2020.07.23
    [유니티_AR파운데이션(AR Found⋯
  • [유니티(Unity)] Time.time과 T⋯
    2020.07.23
    [유니티(Unity)] Time.time과 T⋯
  • [유니티_AR파운데이션(AR Found⋯
    2020.07.23
    [유니티_AR파운데이션(AR Found⋯

태그

  • Unity New Project
  • 유니티 프로젝트 생성
  • Unity Hub
  • 뷰포리아
  • TCP/IP 통신
  • AR
  • 유니티
  • 윤성우의 열혈 TCP/IP 소켓 프로그래밍
  • Unity
  • 유니티 튜토리얼
  • 유니티 설치
  • 증강현실
  • game engine
  • ARFoundation
  • PlaneDetection
  • Vuforia
  • Unity Tutorial
  • 유니티 허브

최근 댓글

  • 깃에 코어 샘플 프로젝트가 있⋯
    SomeDay1332
  • https://developers.google.com⋯
    SomeDay1332
  • 기능을 말씀하시는거죠? 코어⋯
    SomeDay1332
  • https://assetstore.unity.com/⋯
    SomeDay1332
  • 아!! 이건 AR Foundation Remot⋯
    SomeDay1332

최근 글

  • C# 유니티 프로그래밍 간략한⋯
    2022.05.01
  • #3 유니티 에디터 조작과 설명
    2022.04.19
    #3 유니티 에디터 조작과 설명
  • #1 네트워크 프로그래밍과 소켓⋯
    2022.04.19
    #1 네트워크 프로그래밍과 소켓⋯
  • #2 유니티 프로그램 설치
    2022.04.19
    #2 유니티 프로그램 설치
  • #1 유니티 엔진이란?
    2022.04.18
    #1 유니티 엔진이란?

티스토리

hELLO · Designed By 정상우.
SomeDay1332

'언젠가' 시니어 개발자

[유니티_AR파운데이션(AR Foundation)] SDK 사용 및 구현 방법
언젠가 증강현실(AR) 개발/AR 파운데이션 (AR Foundation)

[유니티_AR파운데이션(AR Foundation)] SDK 사용 및 구현 방법

2020. 7. 23. 14:02

안녕하세요. 이번에는 Unity에서 만든 증강현실 SDK인 AR Foundation을 사용하는 법에 대해 포스팅을 진행합니다.

프로젝트 셋팅과 지면인식 씬 세팅에 대한 영상을 유튜브에 업로드 하였습니다.
https://youtu.be/GBlUsZThXYo


AR Foundation은 Google의 AR Core의 기능과 Apple의 AR Kit의 기능을 가지고 만들어낸 통합 SDK입니다.
기존의 AR 개발에서 AOS와 iOS를 둘 다 개발해야만 하는 상황이라면 플랫폼이 다르기 때문에 2 종류의 SDK를 사용하여 구현했어야만 했죠. 그러나 이제 Unity의 AR Foundation을 사용하면 두 플랫폼(AOS, iOS) 둘 다 구현 가능할 수 있게 됐습니다.

이번 포스팅은 AR Foundation을 사용하여 증강현실을 구현하는 것을 목적으로 하였고, 단순 터치 이벤트를 활용하여 오브젝트를 생성시키는 스크립트를 포함하였습니다.

먼저 프로젝트를 생성하면 나오는 기본씬의 모습입니다.

먼저 상단의 Window - PackageManager를 눌러서 패키지 매니저를 실행합니다.

패키지 매니저를 여시면 아래와 같은 창이 뜨는데 먼저 Advanced를 눌러 Show preview packages를 누르시고 preview 버전의 패키지도 보이도록 설정합니다. 이후에 패키지 중 AR Foundation, AR Subsystems, ARCore XR Plugin을 다운 받습니다.
iOS를 사용하시면 ARCore XR Plugin 대신 ARKit XR Plugin을 다운 받으시면 됩니다.
버전은 일단 중요하지 않지만, 추후의 포스팅을 위하여 4.1.0버전을 추천드립니다.

패키지 다운로드가 끝났다면, 이제 기본씬의 구성을 변경하도록 할텐데요. AR 콘텐츠의 기본 셋팅인 AR Session과 AR Session Origin을 생성합니다.

오브젝트를 생성해서 AR Session과 AR Session Origin을 생성하셨다면, 기존에 있던 Main Camera는 삭제하시고 AR Session Origin에 있는 AR Camera의 'Tag'를 'Main Camera'로 설정합니다.

이제 이대로 빌드하면 AR Camera가 작동하게 되어, 휴대폰 카메라를 AR Camera가 잡게 됩니다.
하지만 그러면 아무런 기능이 없기 때문에 이제 기능을 추가하도록 하곘습니다.
AR Session Origin에 컴포넌트를 추가하도록 하겠습니다. 'ARPlaneManager', 'ARRaycastManager'입니다.

추가한 컴포넌트에 빈칸이 몇 개 있죠? 해당 칸에 오브젝트를 넣으셔서 사용하셔도 되고, 따로 스크립트를 만들어서 사용해도 되기 때문에 크게 신경 안 쓰셔도 됩니다만, ARPlaneManager에 있는 'PlanePrefab'에는 오브젝트를 추가하도록 하겠습니다.

하이어라키에서 Create - XR - AR Default Plane을 생성하신 후에 Project씬으로 드래그하여 프리팹화합니다. 그리고 프리팹이 된 오브젝트를 ARPlaneManager의 PlanePrefab에 넣도록 합니다.

이렇게 적용하면 지면인식을 했을 때 아래 같이 AR Default Plane이 생성되어 인식한 지면을 보여주게 됩니다.

이제 터치 이벤트와 오브젝트 생성을 위해 스크립트를 생성하도록 하겠습니다. 스크립트명은 원하는 대로 하셔도 됩니다ㅎㅎ

주석을 보시고 이해 안 되시는 부분은 댓글 부탁드립니다.(매일은 확인하기는 어려워서 늦어도 주말까지는 답글을 달겠습니다~)

해당 스크립트를 AR Session Origin에 추가하고 빈 칸에 AR Session Origin과 원하는 오브젝트를 프리팹화 하여 끌어다 넣습니다.

이제 빌드 셋팅만 진행하면 끝이에요~ 먼저 휴대폰을 사용할 예정이니 Android로 switch platform합니다.

그리고 Player Settings에 들어가서 나머지 설정을 변경합니다.

위와 같이 설정을 변경하시고 빌드를 진행하시면 됩니다.
사용된 기능은
1. 지면 인식 및 지면 인식 plane 생성
2. 지면 인식이 된 곳을 터치하면 오브젝트 생성 (전 placePrefab에 큐브를 넣었습니다)

감사합니다!!

 

728x90

'언젠가 증강현실(AR) 개발 > AR 파운데이션 (AR Foundation)' 카테고리의 다른 글

[유니티_AR파운데이션(AR Foundation)] AR Raycast로 관련 정보를 가져오기  (7) 2021.08.08
[유니티_AR파운데이션(AR Foundation)] Asset ARFoundation Remote 설치 순서 및 사용 방법!  (0) 2021.08.08
[유니티_AR파운데이션(AR Foundation)] Depth API / Occlusion AR Plane Shader 방법  (0) 2020.07.23
[유니티_AR파운데이션(AR Foundation)] Depth API / AR Occlusion Manager 방법  (0) 2020.07.23
[유니티_AR파운데이션(AR Foundation)] 콘텐츠 활용  (0) 2020.07.23
[유니티_AR파운데이션(AR Foundation)] SDK 사용 및 구현 방법  (2) 2020.07.23
    '언젠가 증강현실(AR) 개발/AR 파운데이션 (AR Foundation)' 카테고리의 다른 글
    • [유니티_AR파운데이션(AR Foundation)] Asset ARFoundation Remote 설치 순서 및 사용 방법!
    • [유니티_AR파운데이션(AR Foundation)] Depth API / Occlusion AR Plane Shader 방법
    • [유니티_AR파운데이션(AR Foundation)] Depth API / AR Occlusion Manager 방법
    • [유니티_AR파운데이션(AR Foundation)] 콘텐츠 활용
    SomeDay1332
    SomeDay1332
    (❁´◡`❁)
    댓글쓰기
    1. 이승빈
      2021.05.04 16:29
      혹시 왜 touchCount는 중간에 대문자고 TouchPhase 는 둘다 시작이 왜 대문자인가요 ?
      수정/삭제댓글쓰기댓글보기
      1. 수향
        2021.05.17 21:15
        touchCount 는 맴버변수입니다.
        TouchPhase 는 클래스입니다.

        구분하려고 개발자(사람)가 임의로 정한 규칙입니다. 대소문자 구분없어도 구분이 가능합니다만.. 간혹 "." 이.쩜.을 못보고 지나치는 경우가 있어서 대소문자로 더 확실히 구분짓는 것입니다.
        왜 이.쩜.을 봐야 하냐.. 동작해도 이상하고 동작하지 않아도 이상할때 자신이 작성한 코드를 열심히 들여다보기 때문이죠. 음주코딩때는 쩜을 안봅니다..
        수정/삭제
    다음 글
    [유니티_AR파운데이션(AR Foundation)] 콘텐츠 활용
    이전 글
    google search console
    • 이전
    • 1
    • ···
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 다음