【问题标题】:Catching Input Events in WebGL build在 WebGL 构建中捕获输入事件
【发布时间】:2015-06-25 03:23:58
【问题描述】:

将 Unity 项目作为 WebGL 应用程序运行时,是否可以在应用程序运行后捕获网站的输入事件(例如按键)?

目前,一旦 Unity 应用程序启动,它就会吃掉键盘事件,因此我无法在页面上的文本框中输入内容。我能想到的最佳解决方法是使用 jQuery 直接读取keypress 事件:

 $('#input_message').keypress(function(evt){
   event.preventDefault();

   var code = evt.keyCode || evt.which;
   var key=String.fromCharCode(code);
   $('#input_message').val($('#input_message').val() + key);
 });

};

这可以满足我的即时需求,但我希望 Unity API 有一种更简洁的方式。

版本

  • Chrome v43
  • Unity 5.1.1f1

【问题讨论】:

    标签: unity3d unity-webgl


    【解决方案1】:

    如果我有足够的积分,我会发表评论,但是:

    您可以让您的游戏通过 websocket 将输入发送到您的网站。我用 Azure + SignalR 做过类似的事情

    【讨论】:

      【解决方案2】:

      这个问题没有答案,所以如果有人上来,有一条捷径:

      默认情况下,无论 WebGL 画布是否有焦点,Unity WebGL 都会处理所有发送到页面的键盘输入。这样做是为了让用户可以立即开始玩基于键盘的游戏,而无需先单击画布来聚焦它。但是,当页面上有其他 HTML 元素应该接收键盘输入时,这可能会导致问题,例如文本字段 - 因为 Unity 将在页面的其余部分获取输入事件之前消耗输入事件。如果您需要其他 HTML 元素接收键盘输入,您可以使用 WebGLInput.captureAllKeyboardInput 属性更改此行为。

      这取自here。

      您要查找的属性是WebGLInput.captureAllKeyboardInput。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        • 2016-10-29
        • 1970-01-01
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        相关资源
        最近更新 更多