목적
실제 환경에 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 |