在Unity UI中使用按鈕

更新頁 :
頁面創建日期 :

驗證環境

窗戶
  • 窗戶11
Unity 編輯器
  • 2020.3.25f1

此提示的先決條件

作為解釋這些提示的先決條件,已預先進行了以下設置。

起先

按鈕可以用作使用者自行按兩下的物件,也可以用於做出選擇,例如“是”或“否”。 如果想要更詳細一點,可以使用按鈕作為對象來選擇清單項,例如功能表。

除此之外,它還可用於調試目的以及按下按鈕以任意更改狀態時。

按下按鈕以更改文字

如果您只需按下該按鈕,您將進行一些處理。 這一次,每次按兩下按鈕時,文字編號都會增加1。

UI放置和配置

將層次結構中的文字和按鈕添加到檢視中。

你可以把它放在任何地方,只要你把它放在一個你可以看到它的地方。 由於在初始狀態下很難看到,因此設置了“白色文本顏色”、“更改大小”、“增加字體大小”等設置。 文本的內容稍後會自動更改,因此您可以將其保留為「新文本」。

按鈕的字元設置分為「按鈕」和「文本」 因此請選擇文字並設置它。

添加腳本

從專案中選擇「場景」資料夾,右鍵按下空白區域,然後選擇「C# 腳本」進行添加。 最初,最好在單獨的資料夾中創建腳本,但為了檢查操作,我將省略它。

檔名應該易於理解。 輸入盡可能多的字母數位字元。 ButtonClick 在本例中,它設定為 。

創建后,按兩下 C# 文稿以打開文稿編輯器。 如果腳本編輯器是 Visual Studio,則應看到如下所示的內容:

Start,這次不需要該方法,因此將其刪除, Update 重寫並保存如下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;    // 追加

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  public void OnClick()
  {
  }
}

C# 的語法不是本技巧的主題,因此我不會解釋它。 請自學。 僅討論特定於 Unity 的描述。

MonoBehaviour 在繼承自的類中編寫的欄位將能夠在 Unity 編輯器中設置。 CountText 在這裡,我們定義一個名為 為了顯示它,必須 public 使用 . SerializeField 但是,如果添加該屬性,您將能夠在編輯器中顯示該屬性, public 並具有除 . 如果您不想盡可能多地從其他類訪問它,而不是為了在編輯器中設置它,這是一個更好的描述。

OnClick 提供了一些方法來描述按兩下按鈕時要執行的操作。 public 這必須在 中定義。

從 Unity 編輯器附加

返回到 Unity 編輯器,然後從層次結構 EventSystem 中進行選擇。

EventSystem 檢查器將出現,因此請將您剛剛創建的 C# 腳本放在下面的“添加元件”區域中。 該腳本現在可以工作了。

實際上,此腳本可以附加到任何對象,並且 Button 應該附加到物件。 在這個技巧中,我們將添加 to 以使其統一易於理解 EventSystemButton 當然,將其附加到 . 但是,最好不要將其附加到完全不相關的物件上,因為它會引起混淆。

如果您查看添加的腳本,您可以看到顯示“計數文本”項。 以這種方式發佈欄位后,您將能夠在 Unity 編輯器中設置值。 我們希望在按鍵時訪問文字物件,因此從層次結構 Text 中拖動並將其 Count Text 放在 . 這將允許您隨時從文稿中訪問它。

接下來,從層次結構 Button 中進行選擇,然後按兩下 Inspector Button 中 On Click 下的 +。

然後將添加一個專案。

在右下角的項中,我刪除了從 EventSystem 層次結構附加的腳本。 由於我們需要將腳本附加到的物件放在這裡, 如果要將腳本附加到 Button,則需要包含 Button。

如果按鍵「無功能」 會顯示附加的文稿, 因此 ButtonClick 請選擇 。 選擇您在其中建立 OnClick 的方法。 現在,當您按兩下該按鈕時,將調用該 OnClick 方法。

按鍵即可輸出日誌

我將輸出日誌以確認它是否有效。 只需寫一行就可以檢查它是否有效,這對以後的調試非常有用,所以最好記住它。

ButtonClick 開啟文稿並將 OnClick 以下內容加入到 。

public void OnClick()
{
  // コンソール ログを出力
  Debug.Log("ボタンが押されました!");
}

輸入並保存后,運行遊戲並按下按鈕。

每次按下它時,主控台選項卡中都會顯示一條消息。 現在你可以看到它正在工作。

通過按下按鈕更改文字

現在您可以移動按鈕,此提示的目的已經實現。 現在我已經放置了文本物件,我想在每次按下按鈕時更改文本。

按如下方式重寫腳本。

// 省略

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  /// <summary>クリックカウント。</summary>
  private int _counter = 0;

  public void OnClick()
  {
    // コンソール ログを出力
    Debug.Log("ボタンが押されました!");

    // カウントを増やす
    _counter++;

    // カウントした数を表示する
    CountText.text = _counter.ToString();
  }
}

內容只是在每次按兩下時將計數增加1,並將數字設置為文字物件。

運行遊戲並確保數位隨著每次點擊而增加。