Unity?UGUI的StandaloneInputModule標(biāo)準(zhǔn)輸入模塊組件使用示例
Unity UGUI的StandaloneInputModule (標(biāo)準(zhǔn)輸入模塊)組件的介紹及使用
1. 什么是StandaloneInputModule組件?
StandaloneInputModule是Unity UGUI系統(tǒng)中的一個(gè)標(biāo)準(zhǔn)輸入模塊組件,用于處理鼠標(biāo)和鍵盤(pán)的輸入事件。它可以將鼠標(biāo)和鍵盤(pán)的輸入轉(zhuǎn)化為UGUI系統(tǒng)中的事件,例如點(diǎn)擊、拖拽等。
2. StandaloneInputModule組件的工作原理
StandaloneInputModule組件通過(guò)監(jiān)聽(tīng)鼠標(biāo)和鍵盤(pán)的輸入事件,并將其轉(zhuǎn)化為UGUI系統(tǒng)中的事件。它會(huì)根據(jù)鼠標(biāo)的位置和鍵盤(pán)的按鍵來(lái)確定當(dāng)前的操作對(duì)象,并觸發(fā)相應(yīng)的事件。
3. StandaloneInputModule組件的常用屬性
forceModuleActive
:是否強(qiáng)制激活該輸入模塊。inputActionsPerSecond
:每秒處理的輸入事件數(shù)量。repeatDelay
:重復(fù)觸發(fā)事件的延遲時(shí)間。horizontalAxis
:水平軸的名稱(chēng)。verticalAxis
:垂直軸的名稱(chēng)。submitButton
:提交按鈕的名稱(chēng)。cancelButton
:取消按鈕的名稱(chēng)。
4. StandaloneInputModule組件的常用函數(shù)
Process
: 處理輸入事件的函數(shù),用于將鼠標(biāo)和鍵盤(pán)的輸入轉(zhuǎn)化為UGUI系統(tǒng)中的事件。
5. 完整例子代碼
例子1:點(diǎn)擊按鈕觸發(fā)事件
using UnityEngine; using UnityEngine.UI; public class ButtonExample : MonoBehaviour { public Button button; private void Start() { button.onClick.AddListener(OnClick); } private void OnClick() { Debug.Log("Button Clicked!"); } }
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將ButtonExample腳本掛載到該物體上。
- 在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將該按鈕拖拽到ButtonExample腳本的button屬性上。
- 運(yùn)行游戲,點(diǎn)擊按鈕,控制臺(tái)會(huì)輸出"Button Clicked!"。
注意事項(xiàng):
- 需要在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將其與代碼中的button屬性關(guān)聯(lián)起來(lái)。
例子2:拖拽物體
using UnityEngine; using UnityEngine.EventSystems; public class DragExample : MonoBehaviour, IDragHandler { public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; } }
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將DragExample腳本掛載到該物體上。
- 運(yùn)行游戲,在場(chǎng)景中點(diǎn)擊并拖拽該物體,物體會(huì)跟隨鼠標(biāo)移動(dòng)。
注意事項(xiàng):
- 需要將DragExample腳本掛載到需要拖拽的物體上。
- 需要在場(chǎng)景中添加EventSystem組件。
例子3:鍵盤(pán)控制物體移動(dòng)
using UnityEngine; public class KeyboardExample : MonoBehaviour { public float speed = 5f; private void Update() { float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); transform.Translate(new Vector3(horizontal, vertical, 0) * speed * Time.deltaTime); } }
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將KeyboardExample腳本掛載到該物體上。
- 運(yùn)行游戲,使用鍵盤(pán)的方向鍵控制物體的移動(dòng)。
注意事項(xiàng):
- 需要將KeyboardExample腳本掛載到需要控制的物體上。
例子4:按下按鈕觸發(fā)事件
using UnityEngine; using UnityEngine.UI; public class SubmitButtonExample : MonoBehaviour { public Button submitButton; private void Start() { submitButton.onClick.AddListener(OnSubmit); } private void OnSubmit() { Debug.Log("Submit Button Clicked!"); } }
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將SubmitButtonExample腳本掛載到該物體上。
- 在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將該按鈕拖拽到SubmitButtonExample腳本的submitButton屬性上。
- 運(yùn)行游戲,點(diǎn)擊按鈕,控制臺(tái)會(huì)輸出"Submit Button Clicked!"。
注意事項(xiàng):
- 需要在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將其與代碼中的submitButton屬性關(guān)聯(lián)起來(lái)。
例子5:取消操作
using UnityEngine; using UnityEngine.UI; public class CancelButtonExample : MonoBehaviour { public Button cancelButton; private void Start() { cancelButton.onClick.AddListener(OnCancel); } private void OnCancel() { Debug.Log("Cancel Button Clicked!"); } }
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將CancelButtonExample腳本掛載到該物體上。
- 在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將該按鈕拖拽到CancelButtonExample腳本的cancelButton屬性上。
- 運(yùn)行游戲,點(diǎn)擊按鈕,控制臺(tái)會(huì)輸出"Cancel Button Clicked!"。
注意事項(xiàng):
- 需要在場(chǎng)景中創(chuàng)建一個(gè)按鈕,并將其與代碼中的cancelButton屬性關(guān)聯(lián)起來(lái)。
參考資料
- Unity官方文檔:StandaloneInputModule
以上就是Unity UGUI的StandaloneInputModule標(biāo)準(zhǔn)輸入模塊組件使用示例的詳細(xì)內(nèi)容,更多關(guān)于Unity UGUI StandaloneInputModule的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Unity UGUI的ContentSizeFitter內(nèi)容尺寸適應(yīng)器組件使用示例
- Unity?UGUI的TouchInputModule觸摸輸入模塊組件介紹使用示例
- Unity UGUI的EventTrigger事件監(jiān)聽(tīng)器組件介紹使用示例
- Unity UGUI Shadow陰影組件的介紹使用示例
- Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用
- Unity?UGUI的GraphicRaycaster射線(xiàn)投射組件介紹使用
- Unity?UGUI的PointerEventData的介紹及使用
- Unity UGUI Button按鈕組件使用示例
相關(guān)文章
c# 線(xiàn)程安全隊(duì)列的用法原理及使用示例
這篇文章主要介紹了c# 線(xiàn)程安全隊(duì)列的用法原理及使用示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-11-11C#多線(xiàn)程編程之使用ReaderWriterLock類(lèi)實(shí)現(xiàn)多用戶(hù)讀與單用戶(hù)寫(xiě)同步的方法
這篇文章主要介紹了C#多線(xiàn)程編程之使用ReaderWriterLock類(lèi)實(shí)現(xiàn)多用戶(hù)讀與單用戶(hù)寫(xiě)同步的方法,涉及C#多線(xiàn)程操作讀寫(xiě)鎖定的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11C#語(yǔ)句先后順序?qū)Τ绦虻慕Y(jié)果有影響嗎
有朋友問(wèn)我,C#中C#語(yǔ)句先后順序影響程序的結(jié)果嗎?告訴大家,答案是肯定的,絕對(duì)影響程序的結(jié)果,所以在程序中一定要注意C#語(yǔ)句的順序2015-10-10Dictionary擴(kuò)展基礎(chǔ)類(lèi)向字典中添加鍵和值
Dictionary<TKey, TValue> 類(lèi)是常用的一個(gè)基礎(chǔ)類(lèi),但用起來(lái)有時(shí)確不是很方便。本文逐一討論,并使用擴(kuò)展方法解決2013-11-11C#畢業(yè)設(shè)計(jì)之Winform零壓健身房管理系統(tǒng)
本文介紹了個(gè)人的《零壓健身房管理系統(tǒng)(扁平化)》的基本流程和功能點(diǎn)的介紹,虛心接受各位的意見(jiàn),歡迎在提出寶貴的意見(jiàn),大家一起探討學(xué)習(xí)2021-09-09利用AOP實(shí)現(xiàn)SqlSugar自動(dòng)事務(wù)
這篇文章主要為大家詳細(xì)介紹了利用AOP實(shí)現(xiàn)SqlSugar自動(dòng)事務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10