Unity의 개체 터치에 텍스트 표시

게임에서 개체를 터치할 때 텍스트가 표시되도록 하는 방법을 배울 수 있는 Unity 튜토리얼에 오신 것을 환영합니다. 이 간단한 상호 작용을 통해 프로젝트에 몰입형 요소를 추가할 수 있습니다. 이 튜토리얼은 모바일과 데스크톱 모두에서 작동합니다.

1단계: Unity 프로젝트 만들기

아직 작성하지 않았다면 먼저 Unity을 열고 새 3D 프로젝트를 만듭니다. 선호하는 개발 환경에 필요한 자산이 설치되어 있는지 확인하세요.

2단계: 3D 개체 가져오기

플레이어가 상호 작용할 항목을 나타내는 3D 객체를 장면으로 가져옵니다. 이는 큐브, 구 또는 게임에 적합한 기타 개체일 수 있습니다.

3단계: 충돌기 추가

3D 개체에 충돌기 구성 요소를 연결합니다. 이를 통해 다른 개체가 상호 작용할 때를 감지할 수 있습니다. 일반적인 충돌체 유형에는 개체의 모양에 따라 Box Collider, Sphere Collider 또는 Mesh Collider가 있습니다.

4단계: 캔버스 및 텍스트 만들기

장면 계층 구조를 마우스 오른쪽 버튼으로 클릭하고 UI를 선택한 다음 캔버스를 선택하여 UI 캔버스를 만듭니다. 캔버스 안에 메시지를 표시할 텍스트 구성 요소를 추가합니다.

5단계: 캔버스를 월드 공간으로 설정

Canvas 구성 요소의 렌더링 모드를 'World Space'으로 변경합니다. 이를 통해 캔버스가 게임의 3D 공간에 존재할 수 있습니다.

6단계: 캔버스 배치

3D 개체와 정렬되도록 캔버스의 위치를 ​​조정합니다. 이렇게 하면 트리거될 때 텍스트가 개체 근처에 표시됩니다.

7단계: 스크립트 작성

플레이어가 객체와 상호작용할 때를 감지하는 script를 작성하세요. 상호작용이 발생하면 Canvas를 활성화하고 Text 구성요소의 콘텐츠를 설정합니다. 아래 예제 스크립트를 확인하세요.

'ObjectInteraction.cs'

using UnityEngine;
using UnityEngine.UI;

public class ObjectInteraction : MonoBehaviour
{
    public GameObject canvas;
    public Text displayText;

    private void Start()
    {
        canvas.SetActive(false);
    }

    private void Update()
    {
        // Use inline conditional to determine input position based on platform
        Vector3 inputPosition = (Input.touchCount > 0) ? Input.GetTouch(0).position : (Vector3)Input.mousePosition;

        // Raycast to determine if the touch or click hits the object
        Ray ray = Camera.main.ScreenPointToRay(inputPosition);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
        {
            // Activate the canvas and set the text
            canvas.SetActive(true);
            displayText.text = "Your message here!";
        }
    }
}

8단계: 개체에 스크립트 추가

상호 작용 논리를 처리하고 필요한 모든 변수를 할당하는 C# 스크립트를 3D 개체에 첨부하세요.

9단계: 게임 테스트

게임을 실행하고 상호 작용을 테스트하십시오. 지정된 개체를 클릭하거나 터치하면 텍스트가 나타나야 합니다.

추천 기사
Unity에서 문자열 작업 및 텍스트 데이터 조작
Unity에서 대화형 개체 만들기
Unity에서 운동학적 상호작용 구현
Unity에서 특정 키로 서랍과 찬장 열기
Unity에서 객체 풀링 구현
Unity에서 VR 헤드셋 제어 구현
Unity 개발자에게 가장 유용한 코드 스니펫