본문 바로가기
ARStudy

평면 감지와 가상 객체 생성

by 오랑이귀엽다 2024. 4. 4.

목적

실제 환경에 AR 평면을 감지하고, 사용자의 터치 입력에 따라 가상의 큐브를 해당 평면 위에 생성하는 기능을 구현합니다. 이 과정에서 상호작용을 통해 큐브의 색상, 크기, 회전을 변경할 수 있습니다.

 

구현 코드 (간단한 코드 로직, 자세한 주석 추가)

더보기

public class CubeSpawner : MonoBehaviour
{
    public ARRaycastManager raycastManager; // ARRaycastManager 컴포넌트 참조
    public GameObject cubePrefab; // 생성할 큐브의 프리팹

    void Update()
    {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
        {
            List<ARRaycastHit> hits = new List<ARRaycastHit>();
            if (raycastManager.Raycast(Input.GetTouch(0).position, hits))
            {
                Pose hitPose = hits[0].pose;
                Instantiate(cubePrefab, hitPose.position, hitPose.rotation);
            }
        }
    }
}

사용 이유

평면 감지를 통해 AR 경험의 실감 나는 상호작용을 가능하게 하며, 사용자가 AR 콘텐츠와 직접적으로 상호작용할 수 있는 기회를 제공합니다.

 

사용한 기술

ARRaycastManager : 화면 터치 위치에 해당하는 실세계의 평면을 감지하기 위해 사용합니다. AR 환경에서 동적으로 가상 객체를 생성하여, 사용자에게 인터랙티브한 경험을 제공합니다.

  • raycastManager.Raycast(Input.GetTouch(0).position, hits)

Instantiate 메소드 : 사용자의 터치에 반응하여 가상의 큐브 객체를 동적으로 생성하기 위해 사용합니다. AR 환경에서 동적으로 가상 객체를 생성하여, 사용자에게 인터랙티브한 경험을 제공합니다.

  • Instantiate(cubePrefab, hitPose.position, hitPose.rotation)

'ARStudy' 카테고리의 다른 글

큐브 제거 기능  (0) 2024.04.04
터치로 가상 객체 상호작용 (색상, 회전 및 크기 변경)  (0) 2024.04.04