본문 바로가기
ARStudy

터치로 가상 객체 상호작용 (색상, 회전 및 크기 변경)

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

목적

사용자의 터치 입력에 반응하여 가상 객체가 색상 변경 및 회전하거나 크기가 변하는 기능을 구현하는 것입니다. 이는 사용자와 가상 환경 간의 인터랙티브한 경험을 제공하기 위함입니다.

 

구현 코드 (간단한 코드 로직)

더보기

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