이번 강좌에서는 유니티에서 마우스 커서를 가리기 위한 방법을 배워보겠습니다. 게임이나 시뮬레이션을 만드는 과정에서 마우스 커서를 숨기고 제어하는 것은 사용자 경험을 개선하게 돕는 중요한 기술입니다. 특히 FPS(1인칭 슈팅) 게임이나 특정 UI 요소와의 상호작용을 관리할 때 필수적으로 사용되죠.
1. 개요
마우스 커서를 숨기는 것은 유니티에서 간단한 프로세스입니다. 이를 통해 화면의 특정 요소에 더 집중할 수 있는 등 사용자의 몰입감을 높일 수 있습니다. 커서를 숨기는 것과 동시에 특정 기능을 구현하려면 몇 가지 기본적인 스크립트 수정과 UI 설정이 필요합니다.
1.1. 무엇을 기대할 수 있을까요?
이번 강좌를 통해 다음과 같은 목표를 달성합니다:
- 유니티에서 마우스 커서를 숨기는 방법 이해하기
- 이벤트 트리거로 마우스 상태 관리하기
- 커서를 가리기 위한 사용자 인터페이스 구성하기
- 스크립트를 활용한 고급 기능 추가하기
2. 유니티 환경 설정
먼저 유니티 프로젝트를 설정해야 합니다. 유니티가 설치되어 있다는 가정 하에 진행하겠습니다.
2.1. 새 프로젝트 만들기
유니티 Hub를 실행하고 ‘New Project’ 버튼을 클릭합니다. 다음은 기본적인 세팅입니다:
- 프로젝트 이름:
MouseCursorHiding
- 템플릿 선택:
3D
- 위치: 원하시는 위치를 설정하세요.
이후 ‘Create’ 버튼을 클릭하여 프로젝트를 생성합니다.
2.2. 초기 씬 구성하기
씬을 구성하기 위해 간단한 3D 객체를 추가합니다. 예를 들어, 큐브 또는 평면을 추가합니다.
- Hierarchy 창에서
Right Click
>3D Object
>Cube
를 선택하여 큐브를 추가합니다. - 큐브의 크기를 조정하여 적절한 크기로 만들고, 위치를 조정하여 중앙에 배치합니다.
3. 기본 스크립트 작성
마우스 커서를 숨기기 위해 스크립트를 작성해야 합니다. 여기서는 C#을 사용합니다.
3.1. 스크립트 생성
다음 단계는 새 C# 스크립트를 만드는 것입니다.
- Project 창에서
Right Click
>Create
>C# Script
를 선택하여 새 스크립트를 만듭니다. - 스크립트 이름을
CursorController
로 지정합니다. - 새로 생성된 스크립트를 더블 클릭하여 코드 에디터에서 엽니다.
3.2. 코드 작성
작성할 코드의 내용은 다음과 같습니다:
using UnityEngine;
public class CursorController : MonoBehaviour
{
void Start()
{
// 커서를 가립니다.
Cursor.visible = false;
// 커서 잠금 상태를 중앙으로 설정합니다.
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
// 마우스 버튼을 클릭할 시 커서 상태를 변경합니다.
if (Input.GetMouseButtonDown(0))
{
ToggleCursor();
}
}
void ToggleCursor()
{
// 현재의 커서 상태에 따라 보이거나 숨깁니다.
if (Cursor.visible)
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
else
{
Cursor.visible = true;
Cursor.lockState = CursorLockMode.None;
}
}
}
위 스크립트는 게임이 시작될 때 커서를 숨기고 잠금 상태로 설정합니다. 사용자가 마우스 버튼을 클릭하면 커서의 가시성을 토글합니다.
4. 스크립트 적용
작성한 스크립트를 씬에 적용해야 합니다.
- Hierarchy에서
Cube
를 선택하세요. - Inspector 창에서
Add Component
버튼을 클릭하고CursorController
를 검색하여 추가합니다.
이제 씬을 실행하면 마우스 커서가 가려지는 것을 볼 수 있습니다. 마우스 버튼을 클릭하면 커서가 다시 나타납니다.
5. 고급 기능 추가
기본 커서 가리기 기능을 구현한 후, 추가적인 고급 기능을 개발할 수 있습니다.
5.1. UI 요소와의 통합
게임 내 UI와 상호작용할 때는 커서를 보여줘야 할 필요가 있습니다. UI를 클릭할 때 커서를 표시하도록 만들 수 있습니다.
이를 위해 ToggleCursor
메서드에 UI 클릭 감지를 추가합니다:
using UnityEngine;
using UnityEngine.EventSystems;
public class CursorController : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
void Start()
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ToggleCursor();
}
}
void ToggleCursor()
{
if (Cursor.visible)
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
else
{
Cursor.visible = true;
Cursor.lockState = CursorLockMode.None;
}
}
public void OnPointerEnter(PointerEventData eventData)
{
Cursor.visible = true;
}
public void OnPointerExit(PointerEventData eventData)
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
}
이렇게 하면 UI 요소 위에 마우스를 올렸을 때 커서가 보이고, 마우스가 UI를 벗어나면 다시 숨겨지는 기능이 추가됩니다.
6. 마무리 및 최종 테스트
위의 모든 과정이 끝났다면 이제 프로젝트를 빌드하고 테스트를 진행해 볼 차례입니다. 각종 기능이 정상적으로 작동하는지 확인하고 필요시 수정합니다.
6.1. 빌드 설정
- 상단 메뉴에서
File
>Build Settings
를 클릭합니다. - 플랫폼을 선택하고
Switch Platform
버튼을 클릭합니다. - 필요한 씬을 추가하고
Build
버튼을 클릭하여 실행 파일을 생성합니다.
6.2. 최종 결과 확인
생성된 실행 파일을 실행하여 마우스 커서가 잘 숨겨지는지, 그리고 다른 UI 요소와의 상호작용 시 정상적으로 작동하는지 확인합니다.
결론
이번 강좌에서는 유니티에서 마우스 커서를 가리는 방법에 대해 배워보았습니다. 기본적인 스크립트 작성부터, UI 요소와의 통합까지 다양한 기능을 구현할 수 있었습니다. 이러한 기술들은 다양한 게임 및 애플리케이션 개발에 매우 유용하므로 충분히 활용하시기 바랍니다.
앞으로도 유니티 관련 다양한 강좌를 통해 더욱 전문적인 기술을 습득하시기를 바랍니다. 감사합니다!