Unity UGUI的StandaloneInputModule (标准输入模块)组件的介绍及使用
1. 什么是StandaloneInputModule组件?
StandaloneInputModule是Unity UGUI系统中的一个标准输入模块组件,用于处理鼠标和键盘的输入事件。它可以将鼠标和键盘的输入转化为UGUI系统中的事件,例如点击、拖拽等。
2. StandaloneInputModule组件的工作原理
StandaloneInputModule组件通过监听鼠标和键盘的输入事件,并将其转化为UGUI系统中的事件。它会根据鼠标的位置和键盘的按键来确定当前的操作对象,并触发相应的事件。
3. StandaloneInputModule组件的常用属性
forceModuleActive
:是否强制激活该输入模块。inputActionsPerSecond
:每秒处理的输入事件数量。repeatDelay
:重复触发事件的延迟时间。horizontalAxis
:水平轴的名称。verticalAxis
:垂直轴的名称。submitButton
:提交按钮的名称。cancelButton
:取消按钮的名称。
4. StandaloneInputModule组件的常用函数
Process
: 处理输入事件的函数,用于将鼠标和键盘的输入转化为UGUI系统中的事件。
5. 完整例子代码
例子1:点击按钮触发事件
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!");}
}
操作步骤:
- 创建一个空物体,并将ButtonExample脚本挂载到该物体上。
- 在场景中创建一个按钮,并将该按钮拖拽到ButtonExample脚本的button属性上。
- 运行游戏,点击按钮,控制台会输出"Button Clicked!"。
注意事项:
- 需要在场景中创建一个按钮,并将其与代码中的button属性关联起来。
例子2:拖拽物体
using UnityEngine;
using UnityEngine.EventSystems;public class DragExample : MonoBehaviour, IDragHandler
{public void OnDrag(PointerEventData eventData){transform.position = eventData.position;}
}
操作步骤:
- 创建一个空物体,并将DragExample脚本挂载到该物体上。
- 运行游戏,在场景中点击并拖拽该物体,物体会跟随鼠标移动。
注意事项:
- 需要将DragExample脚本挂载到需要拖拽的物体上。
- 需要在场景中添加EventSystem组件。
例子3:键盘控制物体移动
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);}
}
操作步骤:
- 创建一个空物体,并将KeyboardExample脚本挂载到该物体上。
- 运行游戏,使用键盘的方向键控制物体的移动。
注意事项:
- 需要将KeyboardExample脚本挂载到需要控制的物体上。
例子4:按下按钮触发事件
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!");}
}
操作步骤:
- 创建一个空物体,并将SubmitButtonExample脚本挂载到该物体上。
- 在场景中创建一个按钮,并将该按钮拖拽到SubmitButtonExample脚本的submitButton属性上。
- 运行游戏,点击按钮,控制台会输出"Submit Button Clicked!"。
注意事项:
- 需要在场景中创建一个按钮,并将其与代码中的submitButton属性关联起来。
例子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!");}
}
操作步骤:
- 创建一个空物体,并将CancelButtonExample脚本挂载到该物体上。
- 在场景中创建一个按钮,并将该按钮拖拽到CancelButtonExample脚本的cancelButton属性上。
- 运行游戏,点击按钮,控制台会输出"Cancel Button Clicked!"。
注意事项:
- 需要在场景中创建一个按钮,并将其与代码中的cancelButton属性关联起来。
6. 参考资料
- Unity官方文档:StandaloneInputModule