Unity 基礎 之 代碼動態監聽UI交互組件
一,Button組件
按鈕組件:可響應用戶的點擊并用于啟動或確認操作。
1.1 組件介紹
屬性:
Interactible:此屬性確定該組件是否接受輸入。此屬性設置為 false 時,交互被禁用,過渡狀態也將設置為禁用狀態。
Transition:在可選組件中,有幾個過渡選項,具體取決于可選組件的當前狀態。不同的狀態包括:正常、突出顯示、按下和禁用。
Navigation:還有許多導航選項可用于控制如何實現控件的鍵盤導航。
過度模式:(顏色為例其他同理)
Target Graphic:用于交互組件的圖形。
Normal Color:控件的正常顏色
Highlighted Color:控件突出顯示時的顏色
Pressed Color:控件按下時的顏色
Disabled Color:控件禁用時的顏色
Color Multiplier:這會將每個過渡的著色顏色乘以其值。由此可以創建大于 1 的顏色,從而使基色小于白色(或小于完整 Alpha)的圖形元素上的顏色(或 Alpha 通道)變亮。
Fade Duration:從一個狀態淡入淡出到另一個狀態所需的時間(以秒為單位)
1.2 代碼監聽
監聽無參數形式
public Button m_Btn; void Start() { //監聽無參數函數 m_Btn.onClick.AddListener(OnClickBtn); } public void OnClickBtn(int i) { Debug.Log("帶參函數響應,參數是:" + i); }
委托形式監聽
public Button m_Btn; void Start() { //委托監聽 m_Btn.onClick.AddListener(delegate () { OnClickBtn(111); }); } public void OnClickBtn(int index) { Debug.Log("委托監聽, 參數是:" + index); }
Lambda形式簡化
public Button m_Btn; void Start() { //Lambda監聽 m_Btn.onClick.AddListener(() => { OnClickBtn(111); }); } public void OnClickBtn(int index) { Debug.Log("委托監聽, 參數是:" + index); }
二,Toggle組件
開關組件:是讓用戶打開或關閉某個選項的復選框。
2.1 組件介紹
屬性
Interactable:是否接收點擊
Transition:確定控件以何種方式對用戶操作進行可視化響應的屬性。1
Navigation:確定控件順序的屬性。1
Is On:開關在開始時是否為打開狀態
Toggle Transition:開關在其值發生變化時以圖形方式作出的反應。提供的選項為 None_(即復選標記直接出現或消失)和 Fade_(即復選標記淡入或淡出)。
Graphic:用于復選標記的圖像(那個對號√)。
Group:此開關所屬的開關組。
2.2 代碼監聽
Toggle 的監聽是默認傳遞當前是否勾選的bool值,這樣可以方便用戶直接使用。若需要加其他的參數也可以仿照1例中Button的委托或者Lambda形式去寫就可以了。
public Toggle m_Toggle; void Start() { m_Toggle.onValueChanged.AddListener(OnClickToggle); } void OnClickToggle(bool isOn) { if (m_Toggle.isOn) { Debug.Log("此Toggle已勾選"); } else { Debug.Log("此Toggle已取消勾選"); } }
三,Slider組件
滑動條組件:允許用戶通過拖動鼠標從預定范圍中選擇數值。
3.1 組件介紹
屬性
Interactable:此組件是否接受輸入。
Transition:確定控件以何種方式對用戶操作進行可視化響應的屬性。1
Navigation:確定控件順序的屬性。1
Fill Rec:用于控件填充區域的圖形。
Handle Rect:用于控件滑動“控制柄”部分的圖形
Direction:拖動控制柄時滑動條值增加的方向。選項包括 Left To Right、Right To Left、Bottom To Top 和 Top To Bottom。
Min Value:控制柄處于極下端(由 Direction 屬性確定)時的滑動條值。
Max Value:控制柄處于極上端(由 Direction 屬性確定)時的滑動條值。
Whole Numbers:是否應該將滑動條約束為整數值?
Value:滑動條的當前數值。如果在 Inspector 中設置了該值,則該值將用作初始值,但是當值變化時,運行時的值也將變化。
3.2 代碼監聽
public Slider m_Slider; void Start() { // 監聽 --> 會自動將value作為參數傳遞 m_Slider.onValueChanged.AddListener(OnValueChanged_Slider); } void OnValueChanged_Slider(float value) { Debug.Log("滑動條值改變響應方法, 當前Slider的值:" + value); }
四,Scrollbar組件
滾動條組件:允許用戶滾動由于太大而無法完全看到的圖像或其他視圖。
4.1 組件介紹
屬性
Interactable:此組件是否接受輸入
Transition:確定控件以何種方式對用戶操作進行可視化響應的屬性。1
Navigation:確定控件順序的屬性。1
Fill Rect:用于控件背景區域的圖形。
Handle Rect:用于控件滑動“控制柄”部分的圖形
Direction:拖動控制柄時滾動條值增加的方向。選項包括 Left To Right、Right To Left、Bottom To Top 和 Top To Bottom。
Value:滾動條的初始位置值,范圍為 0.0 到 1.0。
Size:控制柄在滾動條內的比例大小,范圍為 0.0 到 1.0。
Number Of Steps:滾動條允許的不同滾動位置的數量。(當前值小于1時, 滑塊可以滑動到任意位置; 當大于1時則是已占比形式, 比如:numberOfSteps = 3, 則滑塊每次移動1/3;)
4.2 代碼監聽
默認監聽方式:會自動傳遞Scrollbar的Value作為屬性。
拓展監聽方式:使用Lambda表達式的方式進多參數傳遞
public Scrollbar m_Scrollbar; void Start() { // 監聽 --> 會自動將value作為參數傳遞 m_Scrollbar.onValueChanged.AddListener(OnValueChanged_Scrollbar); // 或者 --> 還有其他參數可以這樣寫 m_Scrollbar.onValueChanged.AddListener((float v) => { OnValueChanged_Scrollbar(v, m_Scrollbar.gameObject); }); } void OnValueChanged_Scrollbar(float value) { Debug.Log("滾動條值改變響應方法, 當前Slider的值:" + value); } void OnValueChanged_Scrollbar(float value, GameObject go) { Debug.Log("滾動條值改變響應方法, 當前Slider名稱和值分別:" + go.name + value); }
看過上篇的童鞋理解起來應該會很方便,因為它的默認監聽方式和Slider組件是完全一樣的,而拓展的監聽方式又在Button組件講解時介紹過。
五,DropDown組件
下拉選單組件:可用于讓用戶從選項列表中選擇單個選項。
5.1 組件介紹
屬性
Interactable:此組件是否接受輸入
Transition:確定控件以何種方式對用戶操作進行可視化響應的屬性。
Navigation:確定控件順序的屬性。。
Template:下拉列表的模板的矩形變換。
Caption Text:用于保存當前所選選項的文本的文本 (Text) 組件。
Caption Image:用于保存當前所選選項的圖像的圖像 (Image) 組件。
Item Text:用于保存列表項的文本的文本組件。
Item Image:用于保存列表項的圖像的圖像組件。
Value:當前所選選項的索引。0 代表第一個選項,1 代表第二個,依此類推。
Options:可能選項的列表。可為每個選項指定一個文本字符串和一個圖像。
5.2 代碼監聽
監聽方式和上面基本一致,只是參數意義不同一個是Value進度值,一個是下拉選單的索引值
public Dropdown m_DropDown; void Start() { m_DropDown.onValueChanged.AddListener(OnDropValueChange); } void OnDropValueChange(int v) { //切換選項 時處理其他的邏輯... Debug.Log("點擊下拉控件的索引是..." + v); }
六,Input Field組件
輸入組件:是一種使文本 (Text) 控件的文本可編輯的方法。
6.1 組件介紹
屬性
Interactable:此組件是否接受輸入
Transition:確定控件以何種方式對用戶操作進行可視化響應的屬性。
Navigation:確定控件順序的屬性。
TextComponent:對用作輸入字段內容的文本元素的引用
Text:起始值。開始編輯前置于字段中的初始文本。
Character Limit:可在輸入字段中輸入的最大字符數的值。
Content Type:內容類型,定義輸入字段接受的字符類型。
Line Type:換行類型
Placeholder:占位符,默認顯示值,初始值:“Enter text…”
Caret Blink Rate:光標閃爍速率,定義該行上的標記的閃爍速率。
Caret Width:光標寬度,定義該行上的標記的寬度。
Custom Caret Color:是否開始光標顏色設置
Caret Color:光標顏色
Selection Color:所選文本部分的背景顏色。
Hide Mobile Input:隱藏附加到移動設備屏幕鍵盤上的本機輸入字段。(僅支持IOS)
6.2 代碼監聽
輸入組件:有兩個可監聽的操作,一個是當內容被改變時,一個是結束編輯時,監聽方式和上面差不多,不一樣的是此時的參數是組件中用戶輸入的內容作為字符串被返回來了
public InputField m_InputField; void Start() { // 當內容被改變時回調 m_InputField.onValueChanged.AddListener(OnInputValueChanged); // 內容編輯結束時回調 m_InputField.onEndEdit.AddListener(OnInputEndEdit); } void OnInputValueChanged(string context) { Debug.Log("輸入框內容改變為:" + context); } void OnInputEndEdit(string context) { Debug.Log("輸入框內容編輯結束, 最終內容為:" + context); }
Image unity
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。