Unity与Web结合
偶然在论坛上看到了一篇文章,觉的挺有意思,转载一下,之前做游戏,现在做前端,这篇文章不错。。转载
Unity WebPlayer
写在前面
最近在做unity与web之间通讯的项目,在网上搜索了一些资料非
常零散也是一些比较老的版本,就连官方给出的document 也有
一些error,这也源于web平台的更新速度太快,与此同时unity也要不断的更新相关的文档。我使用的是Unity 5.2.2f Pro版本,通过最近一段时间的摸索与尝试将unity与web之间的交互中的经验整理如下:
Html中嵌入unity 内容
通过webplayer插件将unity中的内容显示在浏览器中,html通过UnityObject.js脚本与webplayer会话。
UnityObject2.js可以是服务器文件夹中的文件,当然也可以是unity官方网站上的链接,使用链接的好处是可以保持最新版本的unityObject2.js文件,同时可能会出现一些函数名变动与参数的变化导致加载崩溃的问题。
通过document.location.protocol 判断网络传输协议是否为安全通道,如果是https安全通道,重写html中的资源引用url为安全的http通道
<script type="text/javascript"> <!-- var unityObjectUrl="http://webplayer.unity3d.com/download_webplayer- 3.x/3.0/uo/UnityObject2.js"; if (document.location.protocol == 'https:') unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-"); document.write('<script type="text/javascript" src="' + unityObjectUrl + '"></script>'); --> </script>
实例化UnityObject2.js脚本,initPlugin方法第一个参数是基于id为unityPlayer的html标签中的第一个子节点,第二个参数是bundle后生成的unity3d文件。
var u = new UnityObject2(); u.initPlugin(jQuery("#unityPlayer"[0],"Example.unity3d");
此段html放到body标签中:
<div id="unityPlayer"> <div class="missing"> <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!"> <img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" /> </a> </div> </div>