Unity 按鈕點擊設定列舉 enum


建立時間: 2023年9月10日 03:00
更新時間: 2023年11月22日 15:25

概述

在 Unity 按鈕有一個 On Click () 事件,在我寫這篇文章時,很遺憾此事件沒辦法監聽有 enum 參數的方法,本篇要來分享如何解決這個問題。

實作說明

我會示範,如何用按鈕設定遊戲難度。

前置作業

你需要先自行建立兩個按鈕,分別命名 EasyButton 和 NormalButton。

enum 設定 Serializable

如下範例,我習慣將 enum 另外寫成一個腳本,將 enum 加上 Serializable 特性,方便之後可以用 Unity 編輯器設定。

GameDifficultyType.cs

using System;

/// <summary>
/// 遊戲難度
/// </summary>
[Serializable]
public enum GameDifficultyType
{
    Easy,
    Normal,
    Hard,
}

按鈕腳本

此腳本會做為按鈕的組件。

DifficultyButton.cs

using UnityEngine;
using UnityEngine.SceneManagement;

public class DifficultyButton : MonoBehaviour
{
    [SerializeField]
    private GameDifficultyType gameDifficultyType;

    /// <summary>
    /// 設定遊戲難度
    /// </summary>
    public void SetGameDifficulty()
    {
        // 使用 gameDifficultyType 處理邏輯。
    }
}

設定按鈕

difficulty button configure

如圖所示,將按鈕遊戲物件加上 DifficultyButton 組件,並且設定難度,在 On Click 事件綁定此按鈕的 SetGameDifficulty() 方法。

結論

目前這個辦法看起來比較直觀,我也有看到使用 string 或 int 當作參數,再將參數轉換成 enum,但需要檢查一下就是了,使用哪種方法都行,只要適合當前使用情境就好。

觀看次數: 738
buttonenumunity
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!