检测机制

2019-11-23 05:21栏目:www.qy66.vip
TAG:

前言

页游前段时间有三个客商端入口:

  1. 网页端 (unity webplayer)
  2. 娱乐微端 (unity standalone)

至于微端的技巧,可参考小编事先的小说:

dotNet开采娱乐微端

11日游微端的多路子思路和省略的自动化打包工具

大器晚成体化思考

近年为增加页游的转变率,在做页游的检查实验机制,现把这几个检验机制的酌量及有关知识分享一下。大约便是浏览器-webplayer插件-操作系统-浏览器的片段音讯检验和管理。

完全思谋是,如若玩家无法透过网页运维游戏,依据操作系统区分,WIN7及以上优先设置微端,XP或其余操作系统建议下载webplayer插件

PS:关于webplayer 手艺是或不是过时,官方是不是不帮助等等话题,此处可是多的探究,假诺是新的网游项目建议接受webgl开辟。

检查评定脚本:

概况的原型检验流程图如下:

机制流程图

测验情况

  • windows 10 x64
    • ie 11 ,edge ,firefox 48 , 360极速浏览器8.7-chrome50
    • ie Test
  • windows 7 x64(SP1)
  • ie 11 ,firefox 48, chrome 52, 360极速浏览器8.7-chrome50
  • windows xp x86(官方原版)
  • ie 6 ,firefox 48, chrome 52

Unity Webplayer

Player Plugin Mono

网页播放器是由3个构件所结合的,分别是插件,播放器和Mono。播放器是实践你的四日游并为你加载财富的Unity运维时。它是和你制作斯坦dalone游戏的时候所利用的运行时是相仿的(或多或少卡塔 尔(阿拉伯语:قطر‎。

这几个运转时索要Mono运行准确。(因为您的嬉戏使用的JavaScript、C#或许Boo脚本是供给依据于Mono的卡塔尔国。

最终,那几个插件是接连网页浏览器和平运动作时的中间件。该插件在Windows系统下对于IE浏览器下是ActiveX控件(OCX卡塔 尔(阿拉伯语:قطر‎的花样,对于别的项目标浏览器则是NPAPI-style动态连接库,而Mac下则是二个.plugin。

摘自:

安装unity webplayer插件之后,在偏下渠道能够看见webplayer插件的有的文书

c:UsersAdministratorAppDataLocalLowUnityWebPlayer

www.qy66.vip 1

loader(插件)

路径:UnityWebPlayerloader

功能:Unity为浏览器提供的插件

  • UnityWebPluginAX.ocx
  • npUnity3D32.dll
  • UnityWebPlayerNP.map
  • info.plist

mono(运行时)

路径:UnityWebPlayermonoStable5.x.x

职能:为mono提供周转时

  • Data
  • mono-1-vc.dll
  • info.plist

UnityWebPlayermonoStable5.x.xDatalib

  • System.Core.dll
  • System.dll
  • mscorlib.dll
  • Mono.Security.dll

player(播放器)

路径:UnityWebPlayerplayerStable5.x.x

功能:网页播放器?真正的播放器,相近flash player?

  • Data
  • wrap_oal.dll
  • webplayer_win.dll
  • info.plist

UnityWebPlayerplayerStable5.x.xData

  • lib
  • unity default resources

UnityWebPlayerplayerStable5.x.xDatalib

  • UnityEngine.dll
  • CrossDomainPolicyParser.dll

CrossDomainPolicyParser(跨域政策深入剖判器)

检查评定操作系统和浏览器

检查实验操作系统和浏览器音信

开源JS脚本:

采纳方法:(提议在浏览器的调节新北运营)

  • 质量评定操作系统
    • platform.os.family(家族): Windows XP,7,NT,版本:Server R2 10等
  • 检查测验浏览器
    • platform.name; platform.version,比如chrome 54,IE 11,Firefox 48 等

浏览器是不是安装webplayer

对于chrome 52(不帮忙webplayer),固然你的操作系统上安装了webplayer插件,那么能够质量评定出安装了webplayer,但什么检查评定是或不是足以运营吧?

方法一 IE内核使用ActiveX,别的内核使用插件检查评定,mimeType 资料:

//just install in os , not detect support
function HasInstallWebPlayer() {
    var tInstalled = false;
    if (navigator.appVersion.indexOf("MSIE") != -1 &&
        navigator.appVersion.toLowerCase().indexOf("win") != -1) {
        tInstalled = detectUnityWebPlayerActiveX();
    } else if (navigator.mimeTypes && navigator.mimeTypes["application/vnd.unity"]) {
        if (navigator.mimeTypes["application/vnd.unity"].enabledPlugin &&
            navigator.plugins && navigator.plugins["Unity Player"]) {
            tInstalled = true;
        }
    }
    return tInstalled;
}

方法二

function GetUnity() {
        if (typeof unityObject != "undefined") {
            return unityObject.getObjectById("unityPlayer");
        }
        return null;
    }

WebPlayer是或不是运营成功

参谋资料:

因而unity提供的UnityObject.js来检查实验,UnityObject简化了Unity的剧情嵌入到HTML中。它有着检查评定Unity网络播放器插件的功用,早先化互连网播放器的设置和嵌入Unity的内容

注意事项

  • 在WIN 10 + IE 11 安装了web player,但运转战败
  • 360极速浏览器 使用chrome50的水源,但依旧得以运作webplayer(win 10 x64)
function UnityRunCallback(result) {
    var unityDiv = document.getElementById('unityPlayer');
    if (!result.success) {
        alert("webplayer 启动失败");
    }
    alert("webplayer 启动成功");
}

function RunUnity(){
    var width = document.documentElement.clientWidth;
    var height = document.documentElement.clientHeight;
    var params = {
        disableContextMenu: true,
        disableExternalCall: false,

        backgroundcolor: '000000',
        bordercolor: "000000",
        textcolor: "FFFFFF"
    }
    unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", width, height, params, null, UnityRunCallback);
 }

JS技能知识

  • string 转int
  • Number 或 parseInt(建议)
  • 判断 object是否为null
  • typeof xxobj == "undefined"

JS全局函数,比window.onload 还更早施行,如下所示:

if (typeof unityObject != "undefined") {
    var width = document.documentElement.clientWidth;
    var height = document.documentElement.clientHeight;
    var params = {
        disableContextMenu: true,
        disableExternalCall: false,
    };
    unityObject.setBaseDownloadUrl("http://webplayer.unity3d.com/download_webplayer-3.x");
    //通过webplayer自启动,在callback中处理
    unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", width, height, params, null, unityLoaded);
}

webplayer调试

浏览器是还是不是可运营webplayer

  1. 浏览器访问

风流浪漫旦当前采用的浏览器支可运营web player,则能够见到webplayer的版本号和缓存的文书新闻,不然运行失败。

www.qy66.vip 2

查阅游戏的运营日志

On Windows 7 the debug log is located at C:Users*Your User Name Here*AppDataLocalTempUnityWebPlayerlog

webplayer调节和测量试验情势

在浏览器中调节和测量检验Unity web player的主意:按住 ALT键,然后点击右键 - Release Channel - Dev

调用浏览器的调整台打字与印刷日志

在unity的脚本中(C#)调用下列方法,能够将日志打印在浏览器的console

Application.ExternalCall( "console.log", "my log message" );

参考:

恢宏资料

IE6倒计时

查看IE6在多个国家家的占用率

浏览器官方网站下载

Firefox 火狐

Chrome 离线版

====== 如安装遭遇错误码:0x80004002 ,请自行科普

扩展阅读

unity3d webplayer UnityObject 你不亮堂的秘闻

浏览器运转webplayer测量检验

下边以后生可畏生机勃勃浏览器在安装webplayer插件之后,运转webplayer的测量试验,因操作系统遇到,或浏览器是不是官方网址版 等原因,存在必然的局限性,应接各位指正。

微软

  • xp

    • IE 6.7 运营退步
  • win 7

    • IE 9,10,11 运营成功
  • win10

    • IE 11 运维成功
    • edge 不支持

firefox

firefox 全类别运维成功

PS: firefox 是不是留存部分版本能够运维?

google

chrome45及以上运转失利,此前的本子则足以运作

www.qy66.vip,chrome 45 移除了NPAPI

chrome地址栏输入 查看chrome启用的插件

PS:国产基于chrome内核的浏览器是不是有做过改正?比方依据chrome 50但也足以运作webplayer成功,但google官方下载的chrome是运作战败的。

版权声明:本文由千亿游戏官网发布于www.qy66.vip,转载请注明出处:检测机制