Tập lệnh tạo công tắc đèn trong Unity

Khả năng bật hoặc tắt đèn trong môi trường trò chơi có thể nâng cao đáng kể sự hòa nhập của người chơi. Cho dù đó là hành động đơn giản là khám phá căn phòng tối hay báo hiệu cho người chơi biết một sự kiện đã xảy ra, công tắc đèn khiêm tốn có thể đóng một vai trò quan trọng. Tập lệnh này cung cấp một cách dễ dàng để chuyển đổi nguồn sáng trong Unity.

Tại sao nên sử dụng tập lệnh chuyển đổi ánh sáng?

  • Môi trường tương tác: Nguồn sáng có thể chuyển đổi có thể làm cho môi trường của bạn trở nên tương tác và năng động hơn.
  • Câu đố: Nó có thể được tích hợp vào cơ chế câu đố.
  • Cơ chế phản hồi: Đèn có thể hoạt động như phản hồi, cho người chơi biết rằng một hành động đã được xác nhận.

Khi nào nên sử dụng nó?

  • Trò chơi kinh dị: Dành cho những trường hợp việc quản lý bóng tối và ánh sáng là yếu tố then chốt để tạo ra căng thẳng.
  • Trò chơi phiêu lưu: Nơi người chơi cần tương tác với môi trường của họ.
  • Phòng thoát hiểm: Nơi giải câu đố có thể yêu cầu bật hoặc tắt đèn.

Cài đặt & Cách sử dụng

  • Tạo đèn: Trong Unity, tạo Đèn điểm, Đèn chiếu hoặc bất kỳ nguồn sáng nào khác mà bạn muốn.
  • Đính kèm tập lệnh: Tạo tập lệnh C# mới có tên 'LightSwitch' và đính kèm tập lệnh đó vào mong muốn GameObject.
  • Kết nối đèn: Kéo nguồn ánh sáng của bạn vào trường thành phần Ánh sáng của tập lệnh trong trình kiểm tra.

'LightSwitch.cs'

using UnityEngine;

public class LightSwitch : MonoBehaviour
{
    public Light lightSource; // Drag your light source here
    public bool isOn = true; // If you want the light to start as ON

    private void Start()
    {
        if (lightSource)
        {
            lightSource.enabled = isOn;
        }
    }

    public void ToggleLight()
    {
        if (lightSource)
        {
            isOn = !isOn;
            lightSource.enabled = isOn;
        }
    }
}
  • Đảm bảo bạn có người chơi có thể đi bộ được gắn thẻ là "Player". Nếu bạn đã làm theo hướng dẫn về Unity Bộ điều khiển FPS của chúng tôi thì bạn đã có sẵn trình phát tại chỗ, chỉ cần thay đổi thẻ của trình phát đó thành "Player".
  • Tạo một GameObject trống mới gần tầm với của người chơi và đặt tên là "LightSwitchTrigger". Đây sẽ hoạt động như vùng tương tác cho công tắc đèn.
  • Thêm thành phần 'Box Collider' vào GameObject "LightSwitchTrigger". Điều chỉnh kích thước và vị trí của nó để bao phủ khu vực mà bạn muốn người chơi có thể tương tác với công tắc đèn. Đảm bảo chọn hộp kiểm "Is Trigger" trên 'Box Collider'.

Kịch bản tương tác:

  • Tạo tập lệnh C# mới có tên 'LightSwitchInteraction'. Tập lệnh này sẽ kiểm tra xem người chơi đã vào vùng tương tác hay chưa và lắng nghe đầu vào để bật đèn.

'LightSwitchInteraction.cs'

using UnityEngine;

public class LightSwitchInteraction : MonoBehaviour
{
    public LightSwitch lightSwitch; // Reference to our LightSwitch script
    private bool playerInZone = false;

    private void Update()
    {
        if (playerInZone && Input.GetKeyDown(KeyCode.E)) // E key is used for interaction in this example
        {
            lightSwitch.ToggleLight();
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            playerInZone = true;
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            playerInZone = false;
        }
    }
}

Thiết lập nó:

  • Đính kèm tập lệnh 'LightSwitchInteraction' vào GameObject "LightSwitchTrigger".
  • Trong Thanh tra, hãy kéo GameObject có tập lệnh 'LightSwitch' vào trường "Light Switch" của thành phần 'LightSwitchInteraction'.

Chơi trò chơi

Bây giờ, khi người chơi của bạn (với thẻ "Player") tiếp cận vùng tương tác, việc nhấn phím "E" sẽ bật hoặc tắt đèn. Bạn cũng có thể điều chỉnh khóa tương tác trong tập lệnh LightSwitchInteraction bằng cách thay đổi 'KeyCode.E' thành bất kỳ khóa mong muốn nào khác.

Câu hỏi thường gặp liên quan đến chủ đề:

  • Tập lệnh này có thể xử lý nhiều nguồn sáng không?: Như đã viết, không, nhưng bạn có thể dễ dàng sửa đổi nó để chấp nhận danh sách các đối tượng Ánh sáng và lặp qua chúng trong phương thức 'ToggleLight' để chuyển đổi tất cả chúng theo một lần.
  • Làm cách nào để thêm âm thanh khi đèn bật hoặc tắt?: Bạn có thể thêm thành phần 'AudioSource' vào GameObject và phát clip âm thanh trong Phương thức 'ToggleLight' khi trạng thái ánh sáng thay đổi.

Phần kết luận

Việc triển khai công tắc đèn trong Unity không chỉ đóng vai trò như một công cụ năng động để thay đổi bầu không khí và tâm trạng của môi trường trò chơi mà còn tăng cường sự tương tác và hòa nhập của người chơi. Bằng cách sử dụng các tập lệnh đơn giản và các tính năng tích hợp sẵn của Unity, chúng tôi có thể tạo cơ chế chuyển đổi ánh sáng tương tác đáp ứng khoảng cách của người chơi và đầu vào. Những yếu tố như vậy, mặc dù có vẻ nhỏ, nhưng có thể nâng cao đáng kể lối chơi, khiến môi trường trở nên hấp dẫn và phản ứng nhanh hơn với hành động của người chơi.