728x90
Materials - Create - Material(M_Indicator)
png 사진 Materials에 저장 - Inspector - Alpha is Transparency - Apply
M_Indicator - Albedo 왼쪽 상자에 png 드래그 앤 드롭
Hierarchy - 3D Object - Quad(Indicator)
Assets - Create Folder(Scripts) - Create - C# Script(CarManager)
XR Origin에 드래그 앤 드롭
더블클릭 해 코드 열기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
public class CarManager : MonoBehaviour
{
public GameObject indicator;
ARRaycastManager arManager;
// Start is called before the first frame update
void Start()
{
// 시작하자마자 인디케이터 비활성화
indicator.SetActive(false);
// AR Raycast Manager 컴포넌트를 가져옴
arManager = GetComponent<ARRaycastManager>();
}
// Update is called once per frame
void Update()
{
DetectGound();
}
// 바닥 감지 및 indicator 출력 함수
void DetectGound()
{
Vector2 screenSize = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f);
List<ARRaycastHit> hitInfos = new List<ARRaycastHit>();
// ray를 이용해 바닥 감지
if(arManager.Raycast(screenSize, hitInfos, UnityEngine.XR.ARRSubSystems.TrackableType.Planes))
{
// 인디케이터 활성화
indicator.SetActive(true);
// 인디케이터의 위치와 회전 값을 레이가 닿은 지점에 일치
indicator.transform.position = hitInfos[0].pose.position;
indicator.transform.rotation = hitInfos[0].pose.rotation;
// 인디케이터 위치를 위로 0.1미터 올림
indicator.transform.position += indicator.transform.up * 0.1f;
}
else
{
indicator.SetActive(false);
}
}
}
Hierarchy - Create Empty(Marker) - Hierarchy Indicator 드래그 앤 드롭
XR Origin - Inspector - Car Manager - Indicator - Marker 드래그 앤 드롭
728x90
'프로그래밍' 카테고리의 다른 글
[Anaconda] Solving environment: failed with initial frozen solve. Retrying with flexible solve 오류 (0) | 2022.10.25 |
---|---|
[Unity] AR_Foundation: AR object 생성하기 (0) | 2022.10.19 |
[Unity] AR_Foundation: AR Plane Manager 평면 생성 (0) | 2022.10.19 |
[Unity] AR_Foundation Android build setting (0) | 2022.10.19 |
[Unity] AR_Foundation (0) | 2022.10.19 |