0

将 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 有一种更简洁的方式。

版本

  • 铬 v43
  • 统一 5.1.1f1
4

2 回答 2

0

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

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

于 2015-06-26T12:36:14.520 回答
0

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

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

这是从这里拍摄的。

您正在寻找的属性是WebGLInput.captureAllKeyboardInput

于 2019-03-25T21:15:42.317 回答