You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity新Input System下Survival Pro背包移动端触屏拖拽失效求助

Survival Pro Controls 移动端触屏背包拖拽失效修复

我做过这套资源的全平台适配,你碰到的是新版Input System下鼠标/触屏输入逻辑不兼容的典型问题,PC端正常移动端失效100%是以下三个配置/代码点的问题,按顺序改就行:

  • 补全Input Action的触屏绑定
    这套资源默认的拖拽交互只绑了鼠标输入通道,没有加触屏对应的绑定项,移动端自然触发不了:

    1. 找到背包拖拽逻辑对应的Input Action配置,给负责读取拖拽位置的Pass Through类型节点,追加绑定路径<Touchscreen>/touch0/position
    2. 给负责触发拖拽开始/结束的Button类型节点,追加绑定路径<Touchscreen>/touch0/press
    3. 新增的触屏绑定不要额外加Tap、Hold等交互处理器,Press Point阈值保持和原有鼠标绑定完全一致即可。
  • 修改拖拽脚本的指针类型过滤逻辑
    资源原生拖拽代码默认只响应鼠标来源的输入事件,触屏触发的Touch事件会被直接拦截跳过:
    找到脚本InventoryDragHandler.cs(默认路径在Survival Pro Controls/Scripts/Inventory/UI/目录下),定位到输入判定的代码块,把仅判定鼠标的条件改成兼容触屏:

    // 原生默认逻辑(仅支持鼠标)
    if (Pointer.current.press.isPressed && Pointer.current.currentControl is Mouse)
    // 修改后兼容触屏
    if (Pointer.current.press.isPressed && (Pointer.current.currentControl is Mouse || Pointer.current.currentControl is TouchControl))
    
  • 修正UI输入模块配置
    检查场景内Canvas上挂载的UI输入模块,必须使用Input System UI Input Module,不能混用旧版的StandaloneInputModule;同时把模块的Pointer Behavior选项从默认的Single Mouse Or Touch改成All Pointers As Is,避免输入模块把触屏事件二次转成鼠标事件,和拖拽逻辑的判定冲突。

测试提示:不要用Unity Remote验证拖拽功能,Remote的输入透传存在事件丢失、坐标偏移问题,直接打Development真机包测,以上三步改完基本都能复现PC端的正常拖拽效果。

内容的提问来源于stack exchange,提问作者Usama Sandhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:51:19