我的問題是,在我更改代碼之后,Unity 不會對 InputField 執行任何操作(我的意思是在開始游戲之后)。我希望在為 InputField 設定文本值之后,啟動后在 Unity 中更改此值。你能幫我嗎?
代碼如下:
public class TextBehaviourScript : MonoBehaviour
{
public InputField input;
void Start()
{
input.text = "some text for input";
}
}
我也嘗試通過 Awake() 和 GameObject 來做到這一點,但是沒有成功(也許這只是我的錯誤)
提前謝謝你
uj5u.com熱心網友回復:
我使用了您的腳本(添加了一個包含),它可以在 Unity 中進行正確設定。
- 創建舊版輸入欄位(游戲物件 -> UI -> 舊版 -> 輸入欄位):
- 然后添加您的腳本并將輸入欄位組件拖到公共欄位。點擊播放,輸入文本發生變化。正如預期的那樣:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ChangeInputFieldText : MonoBehaviour
{
public InputField input;
void Start()
{
input.text = "some text for input";
}
}
新輸入欄位(TextMeshPro):
- 添加 Gameobject -> UI -> 輸入欄位 - TextMeshPro(如果出現提示,請匯入 TMP Essentials!)
- 添加您的腳本并將 TMP 輸入欄位拖到插槽中。這一次,您的腳本需要一個型別的變數,
TMP_InputField
并且所需的 Importusing TMPro;
如下所示:
代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class ChangeInputFieldText : MonoBehaviour
{
public TMP_InputField input;
void Start()
{
input.text = "some text for input";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/520002.html
標籤:C#unity3d
上一篇:如何檢測某個對撞機上的碰撞?