unity打包webgl程序和js键盘监听事件冲突的问题。

unity打包webgl程序和js键盘监听事件冲突的问题。

最近用unity发布webgl程序时,出现了一个挺蛋疼的问题就是,webgl里面的程序他会接受js的键盘监听事件,这样就导致了webgl程序可以使用出入框,让后js程序的输入框就无效了,为了解决这个问题,我也找了一些资料,不过看了以后感觉大部分不能用,后来通过自己研究总结得出了下面的代码,亲测可用,废话不多说,直接上代码。

  //初始化页面禁用unity的键盘监听事件。
        function hackWebGLKeyboard(str) {
             RemoveEventClick( );
        }
          //给unity键盘添加监听事件
        function AddEventClick(){
             for (var i in JSEvents.eventHandlers) {
                var event = JSEvents.eventHandlers[i];
                if (event.eventTypeString == 'keydown' || event.eventTypeString == 'keypress' || event.eventTypeString == 'keyup') {
                   window.addEventListener(event.eventTypeString, event.eventListenerFunc, event.useCapture);
                }
            }
        }
        //移除unity键盘监听事件
        function RemoveEventClick( ){
             for (var i in JSEvents.eventHandlers) {
                var event = JSEvents.eventHandlers[i];
                if (event.eventTypeString == 'keydown' || event.eventTypeString == 'keypress' || event.eventTypeString == 'keyup') {
                  window.removeEventListener(event.eventTypeString, event.eventListenerFunc, event.useCapture);
                }
            }
        }
        //判断当前是否点击到了unity的画布
     document.addEventListener('click', function(e) {
        if (e.target.id == "canvas") {
            AddEventClick();
        } else {
            RemoveEventClick();
        }

这段代码的原理就是在webgl程序开始启动的时候先把webgl的键盘监听事件给注销掉,后面在判断鼠标触摸的是webgl界面还是js界面,来启用和禁用webgl的键盘监听事件。

需要源码的朋友可以给我留言。

转载于:https://blog.51cto.com/14058389/2328058

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101275.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 现代语音信号处理笔记 (一)

    现代语音信号处理笔记 (一)本系列笔记对胡航老师的现代语音信号处理这本书的语音处理部分进行总结,包含语音信号处理基础、语音信号分析、语音编码三部分。一开始以为三部分总结到一篇文章里就可以了,但写着写着发现事情并没有那么简单。。。因此还是老老实实的总结吧,扎实的基础最重要。语音信号处理基础语音信号的处理简称语音处理,是用数字信号处理技术对语音信号进行处理的一门学科。语音信号均采用数字方式进行处理,语音信号的数字…

    2022年5月26日
    42
  • java自定义注解怎么实现注解(怎么获取自定义注解内的值)

    TL;DRJava注解广泛运用在开发之中,用于增强变量/方法/类等。尝试说明Java自定义注解的使用,以及通过开源项目中的使用进行说明。本文主要记录个人的理解,全文基于JavaSE8。自定义注解自定义注解分为两个部分:注解声明和注解处理逻辑。每个注解可以有多个属性值,同名注解通过声明后可以在对象上使用多个。注解结构定义注解用以下实例说明:12345678910@Repeatable(Lea…

    2022年4月13日
    99
  • 如何将XPS文档转成Excel表格?

    如何将XPS文档转成Excel表格?今天收到一个XPS文档,打开文档后发现里面的内容都是数据,使用Excel用公式整理会非常方便,那么如何将XPS文件转换成表格呢?搜索了一圈虽然没有找到XPS转Excel工具,但却找到好用的XPS转PDF方法,于是只能曲线救国先转成PDF再PDF转Excel。方法1:在线转换首先打开speedpdf在线转换工具,选择XPS转PDF进入转换,接着添加需要转换的XPS文件后,点击转换,等待转换完成后点击下载,最后再点击左侧列表中的PDF转Excel,并添加上一步中下载的PDF文档转换即可。如果需要转换的

    2022年5月5日
    354
  • 解除华为学生模式的6种方法

    解除华为学生模式的6种方法华为学生模式的6种方法,已经过作者测试。

    2022年5月1日
    2.1K
  • pycharm需要设置环境变量吗_pycharm怎么打开python环境

    pycharm需要设置环境变量吗_pycharm怎么打开python环境01首先我们打开Pycharm软件,创建一个python项目,默认你会看到项目文件夹下面并没有执行环境,如下图所示02接下来我们点击顶部的File菜单,然后点击下拉选项中的Se…

    2022年8月29日
    3
  • SQL Server 配置管理器无法打开

    SQL Server 配置管理器无法打开在把机器重启后SQLSERVER配置管理器就无法正常打开了

    2022年7月20日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号