UnityObject2 的使用

UnityObject2 是简化嵌入到 HTML 中 Unity 内容的 JavaScript 脚本,允许自定义安装过程。拥有与游戏和网站相匹配的自定义安装用户界面会为终端用户打造出更愉快、更迷人的体验。其拥有检测 Unity 网络播放器 (Web Player) 插件、初始化网络播放器 (Web Player) 安装和嵌入 Unity 内容的函数。尽管将 UnityObject2.js 文件与 HTML 文件一起部署到网络服务器的做法可行,但最好是从 Unity 服务器中直接加载,地址为 http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.jshttps://ssl-webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js,以获得 https 支持。这样,您将始终参照 UnityObject2 最新版本。请注意,托管在 Unity 服务器上的 UnityObject2.js 文件被压缩了,使其变小,节约流量。如果想要浏览源代码,可在 Windows 系统中的 Data\Resources 文件夹和 Mac OS X 中的 Contents/Resources 文件夹中找出源文件。UnityObject2 默认发送匿名数据到 GoogleAnalytics,用于帮助我们确定安装类型和转换率。UnityObject2 依赖 jQuery。

构造函数

需要为页面中出现的每个 Unity 内容创建一个新的 unityObject2 实例。

参数 (Parameters):

注意: 提供 的所有颜色值必须为六位数十六进制颜色(如 FFFFFF、020F16 等)。提供 的图像路径可以是相对链接或绝对链接,所有图像文件必须为 RGB(不透明)或RGBA(透明)的 8 位数/通道 PNG 文件。最后,progressframeimage 和 progressbarimage 的高度应相等。

函数

observeProgress

插件安装和/或初始化期间,可注册一个接收通知的回调函数。

参数 (Parameters):

initPlugin

这将真正尝试启动游戏。调用之前在适当时间注册的回调函数。请注意

参数 (Parameters):

注意: 该函数应在容器元素 (containerElement) 出现在 DOM 中之后调用。为保险起见,可以等到 DOM 加载完成后调用。

installPlugin

尝试使用指定的 method 安装插件。如果没有方法通过,可以尝试使用 this.getBestInstallMethod()。

参数 (Parameters):

注意: 在每个平台/浏览器中并非所有方法都可用。手册会下载一个 exe/dmg 安装程序,用户需要执行手册安装。

getUnity

这会将引用返回至播放器,便于从中调用 SendMessage 等等。

注意: 如果网络播放器 (WebPlayer) 尚未初始化,将返回空值。

示例: 该示例举例证明了一个非常简单的 UnityObject2 用法。如果用户已安装了插件,网络播放器 (WebPlayer) 会正常加载,否则会显示一个隐藏的 div.missing 并在安装按钮上附上一个单击事件。成功安装后,屏幕隐藏,网络播放器 (WebPlayer) 正常加载。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Unity Web Player | "Sample"</title>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
	<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>
        <script type="text/javascript">
		var u = new UnityObject2();
		u.observeProgress(function (progress) {
			var $missingScreen = jQuery(progress.targetEl).find(".missing");
			switch(progress.pluginStatus) {
				case "unsupported":
					showUnsupported();
				break;
				case "broken":
					alert("You will need to restart your browser after installation.");
				break;
				case "missing":
					$missingScreen.find("a").click(function (e) {
						e.stopPropagation();
						e.preventDefault();
						u.installPlugin();
						return false;
					});
					$missingScreen.show();
				break;
				case "installed":
					$missingScreen.remove();
				break;
				case "first":
				break;
			}
		});
		jQuery(function(){
			u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d");
		});
        </script>
    </head>
	<body>
		<p class="header">
			<span>Unity Web Player | </span>WebPlayer
		</p>
		<div class="content">
			<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>
		</div>
		<p class="footer">&laquo; created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> &raquo;</p>
	</body>
</html>

Page last updated: 2013-07-01