【问题标题】:Continuous input from eventTrigger OnPointerDown来自 eventTrigger OnPointerDown 的连续输入
【发布时间】:2017-01-17 11:11:23
【问题描述】:

就像键盘的Input.GetKey() 一样,有没有办法从UI 按钮事件触发 OnPointerDown 获取连续输入?因为对于带有动画的运动控制,它会给出非常奇怪的输出?我必须一次又一次地点击它,我不想这样做!

如果答案是手动跟踪,那该怎么做呢?

【问题讨论】:

    标签: c# unity3d unity5 unity3d-2dtools


    【解决方案1】:

    您可以使用OnPointerDownOnPointerUp 函数执行此操作,然后使用简单的布尔变量来保持状态。然后您可以在更新功能中检查新闻。

    public class YourCode : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
    {
        bool pointerDown = false;
    
        public void OnPointerDown(PointerEventData eventData)
        {
            pointerDown = true;
        }
    
        public void OnPointerUp(PointerEventData eventData)
        {
            pointerDown = false;
        }
    
        void Update()
        {
            if (pointerDown)
            {
                //Your Code
            }
        }
    }
    

    【讨论】:

    • 我是否必须将此脚本一一附加到所有带有Eventtrigger组件并使用OnPointerDownOnPointerUp功能的触摸按钮?
    • 根据使用OnPointerDownOnPointerUp 的特定按钮,每个脚本是否应该在Update() 中具有特定 代码? @程序员
    • 它应该附加到每个 UI Button。因此,将上面的 YourCode 脚本附加到每个 UI 按钮。将要运行的代码放入if (pointerDown) 代码中。它将在每一帧中调用,直到被释放。
    • 如果你有一个想要集成的主脚本,你可以添加一个event 到它。从主脚本订阅事件,然后在if (pointerDown) 中调用事件。
    • 我明白了...但附加更容易..THNX
    【解决方案2】:

    没有。

    您必须手动跟踪事件。使用EventTrigger 是最好的。

    【讨论】:

    • 手动跟踪事件?
    • 怎么做@Doug?
    • 请提供一些信息
    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    相关资源
    最近更新 更多