【问题标题】:Unity: Define UI Buttons in Input ManagerUnity:在输入管理器中定义 UI 按钮
【发布时间】:2020-08-04 03:19:35
【问题描述】:

在画布内,我有 UI 按钮,应该负责“左”、“右”和“跳跃”。是否可以在输入管理器中将它们定义为负责的按钮而不是键盘按钮?

如果不是,如何模拟 UI Buttons 中的左右水平输入事件?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    从未听说过以简单的方式模拟按键,通常只需将Input.GetKey 替换为您用代码控制的自定义bool,但您可以在Event System 中创建Input Events。例如,向左移动。

    void LeftArrow()
    {
        EventSystem eventSystem = EventSystem.Current;
        AxisEventData axisData = new AxisEventData(eventSystem);
    
        axisData.Reset();
        axisData.moveDir = MoveDirection.Left;
        ExecuteEvents.Execute(eventSystem.currentSelectedGameObject, axisData, ExecuteEvents.moveHandler);
    }
    

    或者按钮。以提交按钮为例。

    void SubmitButton()
    {
        EventSystem eventSystem = EventSystem.Current;
        BaseEventData baseData = new BaseEventData(eventSystem);
    
        baseData.Reset();
        ExecuteEvents.Execute(eventSystem.currentSelectedGameObject, baseData, ExecuteEvents.submitHandler);
    }
    

    【讨论】:

      【解决方案2】:

      我设法通过标准资产中的 CrossPlatformInput 获得了我需要的东西,如以下视频所示:https://www.youtube.com/watch?v=RqomLumqwCk

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-19
        • 1970-01-01
        • 2021-03-21
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        相关资源
        最近更新 更多