【问题标题】:How to make a UI element draggable ony on Y axis in Unity?如何使 UI 元素只能在 Unity 的 Y 轴上拖动?
【发布时间】:2019-12-06 16:58:45
【问题描述】:

所以,我正在制作一个关于我所在城市某些地点的 Android 应用程序。在我的 UI 中,我有背景、标题、描述和一个选择器选项卡,应该在用户想要的时候将其拖出并向下拖回。这是一个例子: https://imgur.com/a/kVSMc4U

问题是 - 我真的不知道如何创建一个事件来检查对象何时在 +Y 或 -Y 轴上被拖动并将其拖动到手指位置。有什么建议?

【问题讨论】:

    标签: c# android user-interface unity3d


    【解决方案1】:

    您可以将事件触发器添加到 UI 面板 1.UI面板,添加组件->事件->事件触发器 2. 添加新的事件类型 拖拽添加函数就可以了

    public void onDragPanel()
    {
        if (!_isDrag)
        {
            _isDrag = true;
    
    
            if (Input.GetAxis("Mouse Y") > 0 )
               //Move up
    
            else if (Input.GetAxis("Mouse Y") < 0 )
               //Move down
    
        }
    
    }
    

    对于向上/向下移动,您可以使用具有两种动画状态的动画,也可以使用资产商店中的 UITWEEN。 https://assetstore.unity.com/packages/tools/animation/ui-tween-38583

    如果您还有任何疑问,请告诉我。

    祝你好运!

    【讨论】:

    • 感谢您的回答!我从来没有使用过事件触发器,所以谢谢你提出来。但是我在实现该函数时遇到了问题: 1. _isFrag var 在哪里声明(或者应该手动声明?) 2. 鼠标 X 不应该是鼠标 Y 吗?现在,我在每个 if 语句下都添加了 Debug.Log() 函数,但该函数似乎对滑动没有反应。任何帮助将不胜感激!
    • _isDrag 应该由您手动定义。这取决于你的逻辑,我使用的是_isDrag,所以复制了代码。
    • else if (Input.GetAxis("Mouse X")
    • 你要给事件触发器添加功能,我已经编辑了帖子并添加了事件触发器组件的截图。
    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多