我的unity为什么没有web平台unity3d web发布设置的模式

11353人阅读
Unity3D(29)
我们知道,Unity3D在WebPlayer的发布模式下是沙箱环境中运行的。根据Unity3D的官方文档所述,WebPlayer模式下不能使用非托管的DLL,也就是说,传统C++游戏客户端的生成MiniDump所使用的非托管dll——dbgHelp.dll,在.net中也可以使用P/Invoke方式来调用MiniDumpWriteDump,但在WebPlayer模式下却不能用了。
& & & &那么在WebPlyaer模式下的Unity3D客户端崩溃时,应该如何收集异常信息呢?
& & & &既然不能使用非托管的DLL,不能生成MiniDump,那我们退而求其次,能否得到异常的信息呢?比如发生异常时的调用栈信息,源文件及对应的行号等。
& & & &我们不想在任何客户端语句执行的时候,都使用Try Catch来包含,这样会很蛋疼。可以回想一下.net中支持的全局异常捕获的功能:
& & & &(1) 使用Application的ThreadException事件
Application.ThreadException&+=&new&ThreadExceptionEventHandler(Application_ThreadException);
&&&&&&&&(2) 使用AppDomain的UnHandledException事件
AppDomain.CurrentDomain.UnhandledException+=newUnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
&&&&&& 但从实践的结果来看,对于方法1,Unity3D不支持,因为在Unity3D上开发的程序不是Winform类型的应用程序,Application所在System.Windows.Form这个名字空间都无法包含;而对于方法2,其功能是捕获未处理的异常,但在实践中发现,编写的回调函数没有被调用。而在Editor的Console窗口中已经有了异常信息显示,这意味着异常已经被其他的地方处理了(应该是Unity3D的Runtime库里面),这也是在Unity3D这个“壳”里面进行开发的郁闷之处——你无法控制全局,runtime的代码对于我们是不可控的。
&&&&&& 所以方法1,2都泡汤了。
&&&&&& 再查看了下文档,发现了Unity3D在UnityEngine的Application类中提供了这样一个静态函数:
&&&&&&&&&&&public static voidRegisterLogCallback(Application.LogCallback&handler);
&&&&&& 其功能是在Unity3D执行log的时候,可以注册我们的回调函数,我们再看下Application.LogCallback的原型:
& & & & & &public delegate voidLogCallback(string &condition,string
&stackTrace,LogType &type);& &&
&&&&& 可以根据LogType来得到我们所需要的错误或者异常信息。需要注意的是,在发布Unity的程序后,Unity依然会产生Log,除了其本身异常或错误的log之外,还有开发人员自己调用的Debug.Log。所以我们完全可以借用Unity3D的log机制来得到异常信息,因为一般我们在编辑器里运行时,Console窗口显示的log信息已经足够丰富了。下面是一个测试小程序,其中故意产生了一次除0异常:
在ProcessExceptionReport中下断点,可以得到如下信息:
注意stackTrace,只要将其以\n结尾展开,就是堆栈格式的信息了,condition表示是异常的情况,在这里是除0异常。
至此,由于我们只需要捕捉错误或者异常,所以需要在回调函数中进行过滤。
&&&&&& 得到异常信息之后,就是上报的事情了,在这里就不再进行赘述了,可以专门和异常处理服务器进行通信,上报异常信息。其实如果能得到MiniDump还是最好的,毕竟信息量不一样。如果有哪位兄台可以给出方法,不胜感激!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:566305次
积分:5391
积分:5391
排名:第3898名
原创:27篇
转载:139篇
评论:64条
(2)(5)(6)(5)(1)(7)(3)(2)(2)(2)(15)(4)(3)(1)(2)(11)(3)(13)(6)(34)(12)(2)(29)News Center文章中心
新闻§资讯NEWS
做好的Unity3D项目工程导出webPlayer类型,本地可以直接打开导出的html文件,上传到IIS服务器,输入域名之后无法打开,出现下列错误
Failed to download data&
解决办法如下:
上传到服务器还需要添加MIME, 这里仅针对 IIS6.0和IIS7.0
IIS 6.0添加MIME
右键单击站点属性打开功能选项卡,选择“http头”
application/octet-stream
IIS 7.0添加MIME
本文作者:
本文地址:
版权所有 转载时必须以连接形式注明作者和原始出处
上一篇:&&&&&&
亲,可能你还会喜欢
深圳:深圳市龙华新区民治民泰大厦937
万广互联:
新版官网:
本站关键字:
友情链接交换请加: 或 在官方论坛上发布链接交换信息
咨询热线:400发布为Web版本怎么读取网页内容
是这样:
项目中需要访问一个网页并保存其内容(自己写的aps.net网站,发布到IIS上)
访问代码为
WWW w = new WWW(&http://192.168.1.106:8088/test.aspx&);
在PC平台下没问题,但是把平台改为Web模式后运行报错:
SecurityException: No valid crossdomain policy available to allow access
由于crossdomain.xml放哪都不好使(不清楚是内容的问题还是代码的问题),按网上说的将host url改为http://192.168.1.106:8088/之后运行正常。
现在的问题是:
发布成WebPlayer之后,用IE运行依然有问题,菜鸟真心求指点……
要评论请先&或者&
你解决没有,可否分享下解决方法,谢谢
楼主怎么解决的重要 | Unity计划放弃支持Web Player Unity3D教程手册 官方资讯 生启示
重要 | Unity计划放弃支持Web Player
&&日期: 日
蛮牛酱导读:由于Google放弃了对NPAPI插件的支持,而大批浏览器厂商也会随之不再支持NPAPI插件。这也就意味着大量浏览器都不再支持Unity Web Player,所以正在或准备使用Web Player的开发者要注意啦~Google于今年9月发布的Chrome 45已经完全移除了NPAPI插件支持。除此之外其它浏览器厂商也响应了这一决定,Mircosoft在其全新操作系统Windows 10的默认浏览器Edge中已经不再支持Unity Web Player类似的插件,而Mozilla也宣布了Firefox弃用该插件的计划。这就表示以浏览器插件为主导的网页生态圈已不可行,相信不久之后所有浏览器都不再支持该插件。所以Unity也会慢慢放弃对Web Player的支持。正在使用Web Player的开发者注意啦,Unity已决定从Unity5.4版本(将于2016年3月发布)开始不再支持Web Player。也就是说Unity5.2及5.3的版本还是可以导出到Web Player并运行在支持NPAPI插件的浏览器上。对于准备开发网页应用的开发者,Unity给出的替代方案是导出到WebGL。与Web Player不同的是,WebGL使用的是浏览器给出的标准API而并非插件。也就是说运行WebGL内容无需另外安装插件。这里要注意的是WebGL与Web Player是两个不同的平台,所以二者在功能集和性能上各有千秋。虽然Unity也在与各浏览器厂商合作尽量减少二者间的差异,但还是有些取决于平台的硬性限制,例如出于安全考虑强制限定了可用的网络协议等。对于已将发布到Web Player平台的应用,这些内容在支持NPAPI插件的浏览器中还是可以正常运行。Unity5.3及之前的版本均可下载Web Player来运行该内容。要注意的是,Unity已经不再对生成Web Player应用进行维护,也就是说继续使用Web Player会面临潜在的安全风险。说到这里有网友表示很失望,有些机构就只能用旧版浏览器还是IE啊,那WebGL肯定是Hold不住的只能用Web Player,也就是说永远只能停留在Unity5.3的版本不能再升级咯?还有网友表示不服,人家Firefox说的是2016年底才完全放弃支持NPAPI,凭什么Unity从3月开始就不维护了?也有扼腕叹息的,游戏大部分数学逻辑都是在后台线程跑的,WebGL完全干不来这个啊!!!还有心急的网友追问,Unity是否解决了每次在Windows10上测试WebGL时都会导致Edge崩溃的问题。而让蛮牛酱比较感动是这位恨铁不成钢的网友,直接给出了对打包进WebGL平台编译引擎的内容模块化的解决方案,还详述了这样做的原因。相信是被WebGL导出的代码尺寸伤过的朋友。当然官方表示他们早就考虑到并且已经在行动了,这也是空项目生成的Javascript代码大小”只有“2.5M的原因。大家有什么看法呢,或者有什么被WebGL调戏过的故事吗?欢迎在下方评论区分享哦~本文除“合作社区”及“合作媒体”外,禁止转载。蛮牛社区()分享最新的游戏研发和虚拟现实相关技术内容。
我要分享:
本站资讯来自网友的发布,仅代表网友个人观点,投稿投诉请加公众号:myweiblog
Copyright&(C)
生活启示录-生活百科科普健康养生知识
友情链接:

我要回帖

更多关于 unity3d发布web 的文章

 

随机推荐