在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 以使其統一易於理解 EventSystem
。
Button
當然,將其附加到 . 但是,最好不要將其附加到完全不相關的物件上,因為它會引起混淆。
如果您查看添加的腳本,您可以看到顯示“計數文本”項。
以這種方式發佈欄位后,您將能夠在 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,並將數字設置為文字物件。
運行遊戲並確保數位隨著每次點擊而增加。