목적
사용자의 터치 입력에 반응하여 가상 객체가 색상 변경 및 회전하거나 크기가 변하는 기능을 구현하는 것입니다. 이는 사용자와 가상 환경 간의 인터랙티브한 경험을 제공하기 위함입니다.
구현 코드 (간단한 코드 로직)
using UnityEngine;
public class InteractiveObject : MonoBehaviour
{
void Update()
{
// 화면이 터치되었는지 확인
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
// 터치 위치에서 레이를 발사
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
RaycastHit hit;
// 레이가 객체에 닿았는지 확인
if (Physics.Raycast(ray, out hit) && hit.transform == transform)
{
// 색상 변경
GetComponent<Renderer>().material.color = Random.ColorHSV();
// Y축을 중심으로 45도 회전
transform.Rotate(0, 45, 0);
// 객체의 크기를 증가시킴
transform.localScale += new Vector3(0.1f, 0.1f, 0.1f);
}
}
}
}
사용 이유
이 기능들을 구현함으로써, 사용자와 가상 환경 간의 상호작용을 증진시킬 수 있습니다. 특히, 게임, 교육, 상품 시각화 등 다양한 분야에서 사용자의 경험을 향상시키는 데에 중요한 역할을 합니다. 이러한 상호작용 기법은 향후 복잡한 AR 애플리케이션 개발에 있어 기반 지식과 경험을 제공합니다.
사용한 기술
- Raycasting: 사용자가 터치한 위치에서 가상 공간으로 광선(Ray)을 발사하여, 특정 오브젝트를 탐지합니다. AR 환경에서 사용자 입력을 객체와 연결하는 데 필수적인 기술입니다.
- Touch Input: 사용자의 터치 입력을 받아, 상호작용을 발생시킵니다. 이는 모바일 AR 애플리케이션에서 사용자 경험의 핵심 요소입니다.
- Random Color Generation: Random.ColorHSV() 메서드를 사용하여, 무작위 색상을 생성합니다. 이는 간단한 상호작용에 다양성과 재미를 더합니다.
- Transform Manipulation : 객체의 위치, 회전, 크기 등을 동적으로 변경하기 위해 사용합니다. 사용자의 입력에 따라 가상 객체의 상태를 변경하여, 인터랙티브한 사용자 경험을 생성합니다.
'ARStudy' 카테고리의 다른 글
큐브 제거 기능 (0) | 2024.04.04 |
---|---|
평면 감지와 가상 객체 생성 (0) | 2024.04.04 |