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)和鍵盤的輸入事件。它可以將鼠標(biāo)和鍵盤的輸入轉(zhuǎn)化為UGUI系統(tǒng)中的事件,例如點(diǎn)擊、拖拽等。
2. StandaloneInputModule組件的工作原理
StandaloneInputModule組件通過(guò)監(jiān)聽(tīng)鼠標(biāo)和鍵盤的輸入事件,并將其轉(zhuǎn)化為UGUI系統(tǒng)中的事件。它會(huì)根據(jù)鼠標(biāo)的位置和鍵盤的按鍵來(lái)確定當(dāng)前的操作對(duì)象,并觸發(fā)相應(yīng)的事件。
3. StandaloneInputModule組件的常用屬性
forceModuleActive:是否強(qiáng)制激活該輸入模塊。inputActionsPerSecond:每秒處理的輸入事件數(shù)量。repeatDelay:重復(fù)觸發(fā)事件的延遲時(shí)間。horizontalAxis:水平軸的名稱。verticalAxis:垂直軸的名稱。submitButton:提交按鈕的名稱。cancelButton:取消按鈕的名稱。
4. StandaloneInputModule組件的常用函數(shù)
Process: 處理輸入事件的函數(shù),用于將鼠標(biāo)和鍵盤的輸入轉(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:鍵盤控制物體移動(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)行游戲,使用鍵盤的方向鍵控制物體的移動(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射線投射組件介紹使用
- Unity?UGUI的PointerEventData的介紹及使用
- Unity UGUI Button按鈕組件使用示例
相關(guān)文章
C#多線程編程之使用ReaderWriterLock類實(shí)現(xiàn)多用戶讀與單用戶寫(xiě)同步的方法
這篇文章主要介紹了C#多線程編程之使用ReaderWriterLock類實(shí)現(xiàn)多用戶讀與單用戶寫(xiě)同步的方法,涉及C#多線程操作讀寫(xiě)鎖定的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
C#語(yǔ)句先后順序?qū)Τ绦虻慕Y(jié)果有影響嗎
有朋友問(wèn)我,C#中C#語(yǔ)句先后順序影響程序的結(jié)果嗎?告訴大家,答案是肯定的,絕對(duì)影響程序的結(jié)果,所以在程序中一定要注意C#語(yǔ)句的順序2015-10-10
Dictionary擴(kuò)展基礎(chǔ)類向字典中添加鍵和值
Dictionary<TKey, TValue> 類是常用的一個(gè)基礎(chǔ)類,但用起來(lái)有時(shí)確不是很方便。本文逐一討論,并使用擴(kuò)展方法解決2013-11-11
C#畢業(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

