Unity용 손전등 튜토리얼
많은 비디오 게임에서 손전등은 플레이어의 경험을 향상시키는 중요한 도구(또는 게임플레이 요소) 역할을 합니다. 손전등은 일반적으로 실제 손전등의 기능을 모방하여 켜고 끌 수 있는 휴대용 광원입니다. 게임에서 이 기술의 중요성은 긴장감을 조성하고 현실감을 더하며 어둡거나 조명이 어두운 환경에서 조명을 제공하는 능력에 있습니다.
다음은 키를 눌러 켜고 끌 수 있는 Unity에서 제어 가능한 손전등을 설정하는 방법에 대한 빠른 튜토리얼입니다.
장면 설정
- Unity에서 새 3D 프로젝트 만들기(또는 기존 프로젝트 열기)
- 아직 가져오지 않은 경우 3D 캐릭터나 환경 등 필요한 자산을 가져옵니다.
스포트라이트 만들기
- Hierarchy 패널을 마우스 오른쪽 버튼으로 클릭하고 "Create Empty"를 선택하여 빈 GameObject를 만듭니다.
- 새 GameObject의 이름을 다음으로 바꿉니다. "Flashlight."
- Hierarchy에서 "Flashlight" GameObject가 선택되어 있는지 확인하세요.
- Inspector 패널에서 "Add Component" 버튼을 클릭하고 "Light"를 검색한 다음 이를 클릭하여 "Flashlight" GameObject에 Light 구성 요소를 추가하고 동일한 단계를 반복하여 *h20을 추가합니다. * 요소.
- 유형을 "Spot"로 설정하고 범위, 각도 및 강도 매개변수를 조정하는 등 원하는 설정으로 조명 구성요소를 구성합니다.
- 볼륨, 거리 등을 조정하여 AudioSource 구성요소를 구성합니다.
플레이어에 손전등 부착
- 을 드래그하고 "Flashlight" GameObject를 Hierarchy 패널의 플레이어 캐릭터에 드롭하여 플레이어의 하위로 만듭니다.
- 플레이어의 손이나 원하는 위치에 맞도록 손전등의 위치와 회전을 조정합니다.
손전등 컨트롤 구현
- 자산 패널을 마우스 오른쪽 버튼으로 클릭하고 'Create -> C# Script'를 선택한 다음 이름을 지정하여 새 C# 스크립트를 생성합니다. "FlashlightController."
- 스크립트를 두 번 클릭하여 원하는 코드 편집기에서 엽니다.
- 기본 코드를 제거하고 다음 스크립트로 바꿉니다.
'FlashlightController.cs'
using UnityEngine;
public class FlashlightController : MonoBehaviour
{
// Public variables
public AudioClip turnOnSound;
public AudioClip turnOffSound;
// Private variables
private Light flashlight;
private AudioSource audioSource;
private void Start()
{
// Get Light component in the same GameObject
flashlight = GetComponent<Light>();
if (flashlight == null)
{
Debug.LogWarning("Light component is not attached. Attach a Light component manually.");
}
else
{
flashlight.enabled = false;
}
// Get or add AudioSource component to the same GameObject
audioSource = GetComponent<AudioSource>();
if (audioSource == null)
{
audioSource = gameObject.AddComponent<AudioSource>();
audioSource.playOnAwake = false;
}
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.F))
{
if (flashlight != null)
{
flashlight.enabled = !flashlight.enabled;
// Play audio effect based on flashlight state
if (flashlight.enabled)
{
PlayAudioEffect(turnOnSound);
}
else
{
PlayAudioEffect(turnOffSound);
}
}
else
{
Debug.LogWarning("Cannot control flashlight as Light component is not attached.");
}
}
}
private void PlayAudioEffect(AudioClip clip)
{
if (clip != null)
{
audioSource.clip = clip;
audioSource.Play();
}
}
}
- 스크립트를 저장하고 Unity로 돌아갑니다.
- "FlashlightController" 스크립트를 "Flashlight" GameObject에 연결합니다.
- Light 및 AudioSource 구성 요소가 모두 "FlashlightController" 스크립트와 동일한 게임 개체에 연결되어 있는지 확인하세요.
- 사용자 정의 오디오 클립을 'On/Off' 사운드 변수에 할당하세요.
손전등 테스트
- Play 버튼을 눌러 재생 모드로 들어갑니다.
- 장면에서 캐릭터를 움직입니다.
- 손전등을 켜고 끄려면 "F" 키를 누르세요.
결론
이 튜토리얼이 Unity에서 스포트라이트 손전등 효과를 만드는 방법을 배우는 데 도움이 되었기를 바랍니다. 빛 깜박임과 같은 추가 기능을 추가하거나 플레이어의 입력에 따라 스포트라이트 원뿔 각도를 조정하여 더욱 향상시킬 수 있습니다.