常常看到有网友问道Unity Web Player是什么?其实Unity Web Player是一个浏览器扩展,允许你在浏览器中直接播放使用Unity技术编制的3D内容。支持自动更新。一些3D网页游戏需要安装Unity Web Player方可运行。本文是一篇官方安装使用攻略,它可以帮助您了解Unity Web Player的基本安装和使用。
 
1、Unity Web Player的下载
为了更好地让广大玩家可以在浏览器上运行Unity3d制作的网页游戏,Unity提供了浏览器安装插件UnityWebPlayer.exe。目前的最新版本为4.1.x,大小为628k。其下载地址可以从官方服务器( http://unity3d.com/webplayer/ )进行下载,也可以通过中国的CDN网络ChinaCache服务器( http://wp-china.unity3d.com/down ... /UnityWebPlayer.exe )进行下载。 
在此,需要着重指出的是,Unity官方并没有完整的web player安装包,市面上的任何一款UnityWebPlayerFull.exe安装包均不是Unity推荐使用的。其原因是由于Unity4.x采用了新的更新机制,我们会在接下来的更新机制一节中将进行详细的说明。

 

2、Unity Web Player的使用 
在插件下载完成后,直接双击UnityWebPlayer.exe即可完成该插件的安装。此时,用户即可打开浏览器来运行Unity3D制作的网页游戏或应用,如下图所示:

 

2.jpg

 

在Web Player中,我们默认提供了一个右键菜单,如下所示:

 

1.jpg

 

• Go Fullscreen 
顾名思义,即将该网页游戏全屏显示。 

 

• About Unity Player... 
点击该选项,可查看当前Unity Web Player的版本号。

 

• Setup... 
点击该选项,可以查看该应用所占据的Cache数据量,并可以在网页上对其进行手动删除。 

 

• Release Channel 
即发布的web player版本通道。这是Unity4.0之后提出的新的Unity Web Player运行机制。用户可以通过手动更改来选择运行游戏的web player版本。目前4.1.2提供了四个版本通道,即上图中的“Stable”、“Release”、“Alpha”和“Beta”。默认情况下,web player使用的是“Stable”通道。 
下面,我们将详细解释Release Channel中的这四个选项。 

 

• Stable 
Unity Web Player的默认通道。Stable Channel中目前存放的是3.5.7版本的Unity Web Player相关文件,如果运行的Unity游戏或应用是使用3.x版本的Unity编辑器开发的,那么Unity会自动从Stable Channel下载3.5.7版本的web player文件来运行该游戏或应用。该通道相关文件的下载位置我们会在下一章进行详细说明。 

 

• Release 
Release Channel中目前存放的是最新版本的Unity Web Player相关文件(ChinaCache上为4.1.2版本)。如果浏览器运行的游戏或应用是由4.x版本的编辑器开发的,那么Unity在下载时会自动从Release Channel中下载最新的4.x web player版本来运行该游戏或应用。 
另外,用户也可以手动选择“Release”选项来下载Release Channel中的web player相关文件。该通道相关文件的下载位置我们会在下一章进行详细说明。 

 

•Beta 
Beta Channel中目前存放的是4.1.x版本的Unity Web Player相关文件,并且该通道的文件内容只能通过手动选择来进行下载。其下载位置我们会在下一章中进行详细的说明。值得注意的是该通道并不是为游戏玩家而准备的,而是提供给开发人员的,即我们会在该通道中存放即将发布的Unity Web Player版本,从而让开发人员可以提前体验下一个版本的新功能以及对目前开发内容进行兼容性的测试。同时,开发人员也可以将其体验结果反馈给我们,以便我们对下一个版本进行完善和修改。 

 

• Alpha 
同Beta Channel一样,该通道文件只能通过手动选择来进行下载。该通道目前存放的是4.2.0版本的Unity Web Player相关文件,也是专门为开发人员而准备的,可以让其提前对其正在开发的游戏在下一个版本中的Web Player中的兼容性进行测试。 

 

•Development 
选择Development是指下载并使用当前通道的web player的debug版本,其下载位置我们会在下一章进行详细说明。通过使用该debug版本,可以让Unity编辑器中的Profiler直接与目前浏览器运行的Unity内容进行信息对接,从而开发者可以直观地对当前游戏或应用在CPU、GPU和内存等方面的消耗进行检测,如下图所示:

 

3.jpg

 

 
3、Unity Web Player的更新机制
在安装UnityWebPlayer.exe后,打开一个Unity发布的网页应用,第一次一般会看到如下的“加载”页面:
 

4.jpg

该页面的背后实际上是Unity插件在下载运行游戏所必须的Player和Mono相关文件。一般来说,Unity Web Player主要由三个部分组成:Plugin、Player和Mono。

• Plugin 
即UnityWebPlayer.exe安装后的load文件夹、UnityBugReporter.exe和UnityWebPlayerUpdate.exe,如下图所示。Plugin文件主要负责Unity Web Player中Player和Mono文件的下载和更新,以及Unity Player崩溃时的Bug报告发送。

 

5.jpg

 

• Player和Mono 
Player和Mono部分是指下图红框中的文件夹。该部分文件是需要Plugin通过服务器进行下载和更新,主要负责网页游戏或应用在浏览器中的运行。

 

6.jpg

 

3.1 Web Player的运行机制
用户在浏览器中运行Unity游戏或应用时,Unity Web Player会进行如下几个步骤来完成相关文件的下载和加载: 
(1)Unity Plugin会对即将运行网页游戏版本进行检测,检测其游戏的开发版本是3.x开发的,还是4.x开发的。 
(2)对于3.x版本开发的游戏,目前Unity Plugin会自动下载服务器上Stable 通道中的Player和Mono文件,目前该通道的文件是3.5.7版本的;对于4.x版本开发的游戏,Unity Plugin会自动下载Release 通道中的Player和Mono文件,目前该通道的文件是4.1.x版本。之所以有选择地进行下载,是为了避免3.x游戏在4.x web player上运行的兼容性问题。这样,无论是使用何种Unity版本开发的游戏,都可以流畅地在浏览器上进行运行。 
(3)如果用户手动选择Release Channel中的Alpha、Beta和Development等通道,则Unity Plugin也会分别下载各自通道内的Player和Mono文件。最终下载的所有文件,均放在Player和Mono文件夹中,示意图如下所示:

 

7.jpg

 

同时,在Win7系统中,这些文件的保存路径为: 
C:\Users\用户名\AppData\LocalLow\Unity\WebPlayer 
在XP系统中,其文件保存路径为: 
C:\Documents and Settings\用户名\Local Settings\Application Data\Unity\WebPlayer

 

4、Unity Web Player的注意事项
接下来,我们将玩家在使用Unity Web Player时所遇到的问题进行归类,并一一进行解答。 

 

•安装Unity Web Player是否一定需要重新开启浏览器? 
目前Unity Web Player在Mozilla内核的浏览器(Chrome,Firefox)上进行安装后,是可以直接刷新并进入游戏的,不需要对浏览器进行重启。对于IE内核的浏览器,Unity Web Player安装完后确实需要重启浏览器才能进入游戏。这个问题是受IE内核限制的,并不是Unity插件能够控制的。即IE内核的浏览器对于非内部支持的第三方插件,均需要重启浏览器才能对该插件进行加载和运行。

 

•如何提升Unity Web Player的下载速度? 
对于直接通过Unity编辑器导出的web 游戏或应用,其默认的Player和Mono相关文件是通过国外服务器进行下载和更新的。这就对国内的用户带来了的“较长时间等待”的问题。对此,Unity已经和ChinaCache进行合作,国内的游戏开发商只需通过对发布的html文件进行简单的修改,即可从国内的ChinaCache服务器上进行Player和Mono文件的更新,从而大大降低了Unity Web Player的下载和更新时间。html文件的具体设置方法可参考该网址: http://blog.sina.com.cn/s/blog_bd56822d010169ag.html 。

 

• 为什么Unity Web Player更新后会出现“低版本无法运行高版本”问题? 
少部分玩家在运行游戏时,会出现以下的错误信息:

 

8.jpg

 

这种情况一般出现在小型的网络运营商,即该运营商对其下载请求进行了“劫持”,从而使得该用户并不是从真正的ChinaCache上进行下载,而是将其重定向到从其本地的缓存中进行下载。以下是一个用户提供过来的典型案例,该用户来自广西玉林市。

 

9.jpg

 

从上图中可以看到UnityPlayer3.x.x和Mono3.x.x文件均请求通过wp-china.unity3d.com(即ChinaCache)上进行下载,但是这两个请求均被Pending,其真正的下载地址被重定向到219.232.82.4这个“视通网络”的本地服务器上,这个就是一些小网络运营商为了节省其从电信、联通上下载的流量,而在其本地设置了一个类似于缓存的服务器,当用户请求相同的URL进行下载时,运营商并没有真正通过ChinaCache进行下载,而是将请求重定向该本地服务器。同时,缓存上的文件并不是最新的,这就造成了无法下载到最新的player和mono版本,进而出现上述错误。对于这种“劫持”行为,目前只能玩家通过向其购买服务的网络运行商进行投诉才可以得到解决。

 

• 如何判断Unity Web Player是否下载和更新正确? 
用户可以直接在Unity Web Player的目录中检测Stable和Release的相应版本。通过查看Stable-3.x.x和Release-3.x.x文件夹中的info.plist即可获得相应的Player和Mono文件的版本号。info.plist的内容如下所示:

 

10.jpg

 

其中,CFBundleVersion即表示当前通道文件的版本号。就目前而言,如果通过ChinaCache进行下载,其Stable通道中的文件为3.5.7f6,以及Release通道中的文件为4.1.2f1,即表明Unity Web Player更新正确。

 

• 为什么会出现Plugin版本号与Player/Mono版本号不一致的现象? 
有不少用户反映Unity Web Player中Load文件夹下的info.plist所记载的版本信息与Player/Mono文件夹下info.plist所记录的信息不一致。在此,我们向开发者和玩家声明,这种现象是正常的。 
这是因为Unity Web Player的更新过程只对Player和Mono文件进行更新,并没有对Plugin文件进行更新,而Loader文件属于Plugin部分,所以其版本信息与Player/Mono的版本信息不一致是正常现象。同时,Plugin文件的任务只是对Player/Mono文件进行下载和更新,目前并不影响游戏的运行,所以该部分文件本质上并不需要进行更新。 
举例:对于已经安装4.0.1版本的用户,其Unity Web Player更新后,Release通道下Player/Mono文件的版本号会被升级为4.1.2,而Loader文件的版本号仍为4.0.1。

 

• Windows XP系统的Terminal Services开启问题? 
目前对于在WindowsXP系统,需要开启系统的Terminal Services服务才可以运行Unity网页游戏的。一般情况下,Terminal Services是默认开启。如果遇到关闭的情况,可以按照以下方法来开启Terminal Services: 
(1)点击“windows开始--->运行--->输入services.msc ”,如下图所示:

 

11.jpg

 

(2)在服务中选择“Terminal Services”,如下图所示:

 

12.jpg

 

13.jpg

 

通过以上步骤,即可开启WindowsXP系统上的Terminal Services服务,进而可以在浏览器上运行Unity网页游戏。 
对于WindowsXP系统上Terminal Services服务的依赖性,Unity的开发工程师已经将其进行完善,在后续的版本中Unity Web Player将不再依赖Terminal Services服务。