0

我正在使用Unity UI Toolkit和新输入系统。

我的游戏逻辑是,当我按下鼠标左键时,对象应该开始移动。视图中还有一个加电按钮,我用UI Toolkit创建了这个按钮,并编写了这样的脚本。

无效开始(){VisualElement menuRoot=GetComponent<UIDocument>().rootVisualElement;按钮firstPowerUp=menuRoot。Q<按钮>(“first_power_up”);首个PowerUp.clicked+=()=>{执行();};}无效执行(){调试。日志(“点击通电!”);}

按钮工作正常。但输入操作也有效。所以,我的按钮和对象移动一起工作。我该如何解决这个问题或分离输入系统?

我尝试了很多方法:

  1. 单击UI按钮时禁用InputAction
  2. 尝试将EventSystem与EventSystem.current一起使用。游戏对象上的指针()
  3. 研究了UI蒙板,但我认为解决方案应该更简单
  4. 尝试更改UI生成器中的一些属性等等。

1答案1

重置为默认值
0

看起来您不需要每次单击时都移动对象(例如,在单击按钮的情况下),所以您不应该将鼠标单击直接绑定到对象移动。

1,创建脚本,当您执行鼠标单击而不是旧的移动脚本时,它将获得信号。

2,将此检查添加到新脚本:

if(!EventSystem.current.IsPointerOverGameObject()){//光标不在ui上,现在移动对象}其他的{//光标位于某个ui上,不要移动对象}

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.