Unity용 손전등 튜토리얼

많은 비디오 게임에서 손전등은 플레이어의 경험을 향상시키는 중요한 도구(또는 게임플레이 요소) 역할을 합니다. 손전등은 일반적으로 실제 손전등의 기능을 모방하여 켜고 끌 수 있는 휴대용 광원입니다. 게임에서 이 기술의 중요성은 긴장감을 조성하고 현실감을 더하며 어둡거나 조명이 어두운 환경에서 조명을 제공하는 능력에 있습니다.

외계인 격리 스크린샷

다음은 키를 눌러 켜고 끌 수 있는 Unity에서 제어 가능한 손전등을 설정하는 방법에 대한 빠른 튜토리얼입니다.

장면 설정

스포트라이트 만들기

  • Hierarchy 패널을 마우스 오른쪽 버튼으로 클릭하고 "Create Empty"를 선택하여 빈 GameObject를 만듭니다.
  • 새 GameObject의 이름을 다음으로 바꿉니다. "Flashlight."
  • Hierarchy에서 "Flashlight" GameObject가 선택되어 있는지 확인하세요.
  • Inspector 패널에서 "Add Component" 버튼을 클릭하고 "Light"를 검색한 다음 이를 클릭하여 "Flashlight" GameObject에 Light 구성 요소를 추가하고 동일한 단계를 반복하여 *h20을 추가합니다. * 요소.
  • 유형을 "Spot"로 설정하고 범위, 각도 및 강도 매개변수를 조정하는 등 원하는 설정으로 조명 구성요소를 구성합니다.
  • 볼륨, 거리 등을 조정하여 AudioSource 구성요소를 구성합니다.

Unity 장면에서 스포트라이트의 효과

플레이어에 손전등 부착

  • 을 드래그하고 "Flashlight" GameObject를 Hierarchy 패널의 플레이어 캐릭터에 드롭하여 플레이어의 하위로 만듭니다.
  • 플레이어의 손이나 원하는 위치에 맞도록 손전등의 위치와 회전을 조정합니다.

손전등 컨트롤 구현

'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에서 스포트라이트 손전등 효과를 만드는 방법을 배우는 데 도움이 되었기를 바랍니다. 빛 깜박임과 같은 추가 기능을 추가하거나 플레이어의 입력에 따라 스포트라이트 원뿔 각도를 조정하여 더욱 향상시킬 수 있습니다.