참고
미드 에어 앵커(Mid Air Anchors)를 이용하면 이미지를 인식하지 않아도 공간에 AR 오브젝트를 만들 수 있다.
뷰포리아에서 제공하는 미드 에어 앵커를 사용해보자.
Mid Air Anchors 적용하기
Vuforia Engine에서 아래 두 오브젝트를 추가한다.
Mid Air는 Ground Plane과 사용 방법이 거의 동일하다.
예를 들어 Ground Plane Stage는 Mid Air Stage와 Stage Type만 다를 뿐이다.
Ground Plane에서 Plane Finder에 Anchor Stage를 추가한 것처럼,
Mid Air Positioner에 Mid Air Stage를 앵커 스테이지로 설정한다.
그리고 Mid Air Stage에 생성할 오브젝트를 자식으로 설정한다.
위에서 사용한 오브젝트는 아래 링크를 참고하자.
https://assetstore.unity.com/packages/3d/characters/creatures/kawaii-slimes-221172
Ground Plane과 마찬가지로 Mid Air도 웹캠에서 테스트할 수 없다.
아래의 임시 이미지를 이용해서 테스트하는 것은 가능하다.
게임을 실행하면 Mid Air Indicator가 위치하는 곳에 오브젝트를 만들 수 있다.
Mid Air Positioner 제어하기
오브젝트를 하나만 생성하려면 Duplicate Stage를 해제하면 된다.
그라운드 플레인에서 Plane Finder를 제어한 것처럼 Mid Air Positioner도 제어가 가능하다.
PlaneFinderController.cs를 참고하여 MidAirPositionerController.cs를 만든다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class MidAirPositionerController : MonoBehaviour
{
public GameObject midAirPositioner;
AnchorInputListenerBehaviour ailr;
MidAirPositionerBehaviour mapb;
ContentPositioningBehaviour cpb;
float interval = 0.25f;
float doubleClickedTime = -1.0f;
bool isDoubleClicked = false;
public void initialize()
{
ailr.enabled = false;
mapb.enabled = false;
this.gameObject.SetActive(true);
}
void Start()
{
ailr = midAirPositioner.GetComponent<AnchorInputListenerBehaviour>();
mapb = midAirPositioner.GetComponent<MidAirPositionerBehaviour>();
cpb = midAirPositioner.GetComponent<ContentPositioningBehaviour>();
cpb.OnContentPlaced.AddListener(delegate { initialize(); });
}
void OnMouseUp()
{
if ((Time.time - doubleClickedTime) < interval)
{
isDoubleClicked = true;
doubleClickedTime = -1.0f;
}
else
{
isDoubleClicked = false;
doubleClickedTime = Time.time;
}
}
void Update()
{
if (isDoubleClicked)
{
isDoubleClicked = false;
this.gameObject.SetActive(false);
ailr.enabled = true;
mapb.enabled = true;
}
}
}
planeFinder → midAirPositioner
PlaneFinderBehaviour → MidAirPositionerBehaviour
스크립트를 슬라임에 추가하고 더블 클릭 이벤트를 위해 콜라이더도 추가한다.
apk 빌드 후, 공간에 정상적으로 오브젝트가 생성되는 것을 확인해보자.
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
댓글