admin管理员组文章数量:1589782
XR Interaction Toolkit 使用 新输入系统 自定义按钮事件
在网上找了好久,讲新输入系统的没几个,使用XR Interaction Toolkit的更少,自己来一个吧
第一件事,导包
完整版
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.InputSystem;
using DG.Tweening;
using Unity.VisualScripting;
using UnityEngine.UIElements;
简洁版
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using Unity.VisualScripting;
DG.Tweening是Dotween的包,可以不管他,
如果没用到UI的话,UI类的包也别导入了
第二件事,增加新输入系统变量
public InputActionProperty AActionProperty;
private InputAction AAction;
在Start中
void Start()
{
pinchAction = pinchActionProperty.action;
AAction= AActionProperty.action;
}
最后在Update中做处理
直接举例子好了
下面以Select事件做完整版例子
public class A : MonoBehaviour
{
public InputActionProperty AActionProperty;
private InputAction AAction;
bool isSelectOK = true;
// Start is called before the first frame update
void Start()
{
AAction= AActionProperty.action;
}
// Update is called once per frame
void Update()
{
if (isSelectOK)
{
if (AAction.ReadValue<float>() == 1)
{
isSelectOK = false;
StartCoroutine(setSelectOkValue(0.6f));
aabbcc();
}
}
}
public void aabbcc()
{
}
IEnumerator setSelectOkValue(float a)
{
yield return new WaitForSeconds(a);
isSelectOK = true;
}
}
在Unity编辑器里
上面代码的意思是当isSelectOK为true时,接收AAction的数据,当接收到AAction的输入时(值为1)
将isSelectOk设置为负,取消接收AAction的数据
然后启动协程,等待0.6秒后,再将isSelectOK设置为true,继续接收AAction的数据,相当于是给输入增加了个0.6秒的冷却时间
将需要的功能加入到aabbcc()里面就好
版权声明:本文标题:XR Interaction Toolkit 使用 新输入系统 自定义按钮事件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728075479a1144416.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论