Hướng dẫn sử dụng đèn pin cho Unity

Trong nhiều trò chơi điện tử, đèn pin đóng vai trò là công cụ quan trọng (hoặc yếu tố trò chơi) giúp nâng cao trải nghiệm của người chơi. Đèn pin là nguồn sáng di động có thể bật và tắt, thường mô phỏng chức năng của đèn pin trong thế giới thực. Tầm quan trọng của nó trong trò chơi nằm ở khả năng tạo ra sự hồi hộp, thêm tính hiện thực và cung cấp chiếu sáng trong môi trường tối hoặc thiếu sáng.

Ảnh chụp màn hình cách ly người ngoài hành tinh

Dưới đây là hướng dẫn nhanh về cách thiết lập đèn pin có thể điều khiển trong Unity có thể bật và tắt bằng cách nhấn phím.

Thiết lập cảnh

  • Tạo một dự án 3D mới trong Unity (hoặc mở một dự án hiện có)
  • Nhập bất kỳ nội dung cần thiết nào, chẳng hạn như nhân vật hoặc môi trường 3D nếu chưa có

Tạo điểm nhấn

  • Nhấp chuột phải vào bảng Phân cấp và chọn "Create Empty" để tạo GameObject trống.
  • Đổi tên GameObject mới thành "Flashlight."
  • Đảm bảo "Flashlight" GameObject được chọn trong Hệ thống phân cấp.
  • Trong bảng Thanh tra, nhấp vào nút "Add Component", tìm kiếm "Light" sau đó nhấp vào nút đó để add thành phần Light vào "Flashlight" GameObject và lặp lại bước tương tự để thêm "AudioSource" thành phần.
  • Định cấu hình thành phần Ánh sáng theo các cài đặt mong muốn, chẳng hạn như đặt Loại thành "Spot" và điều chỉnh các tham số Phạm vi, Góc và Cường độ.
  • Định cấu hình thành phần AudioSource bằng cách điều chỉnh Âm lượng, Khoảng cách, v.v.

Hiệu ứng của Spot Light trong cảnh Unity

Gắn đèn pin vào máy nghe nhạc

  • Kéo và thả "Flashlight" GameObject vào nhân vật người chơi trong bảng Phân cấp để biến nhân vật đó thành con của người chơi.
  • Điều chỉnh vị trí và góc xoay của đèn pin sao cho phù hợp với tay người chơi hoặc vị trí mong muốn.

Thực hiện điều khiển đèn pin

  • Tạo tập lệnh C# mới bằng cách nhấp chuột phải vào bảng Nội dung và chọn 'Create -> C# Script', sau đó đặt tên cho nó "FlashlightController."
  • Bấm đúp vào tập lệnh để mở nó trong bất kỳ trình soạn thảo mã ưa thích nào.
  • Xóa mã mặc định và thay thế bằng đoạn mã sau:

'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();
        }
    }
}
  • Lưu tập lệnh và quay lại Unity.
  • Đính kèm tập lệnh "FlashlightController" vào "Flashlight" GameObject.
  • Đảm bảo cả hai thành phần Light và AudioSource đều được gắn vào cùng một đối tượng trò chơi dưới dạng tập lệnh "FlashlightController".
  • Gán các clip âm thanh tùy chỉnh của bạn cho các biến âm thanh 'On/Off' lần lượt.

Kiểm tra đèn pin

  • Nhấn nút Play để vào chế độ Play.
  • Di chuyển nhân vật xung quanh trong Cảnh.
  • Nhấn phím "F" để bật và tắt đèn pin.

Phần kết luận

Hy vọng rằng hướng dẫn này đã giúp tìm hiểu cách tạo hiệu ứng đèn pin tiêu điểm trong Unity. Nó có thể được nâng cao hơn nữa bằng cách thêm các tính năng bổ sung như ánh sáng nhấp nháy hoặc điều chỉnh góc hình nón của đèn chiếu dựa trên đầu vào của người chơi.