返回介绍

UnityObject2 的使用

发布于 2021-06-19 18:03:27 字数 6998 浏览 887 评论 0 收藏 0

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.js 或 https://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):

  • configuration - 一个包含本实例配置的对象。以下是几个部分:
    • width - 默认:100%,Unity 内容的宽 (Width)。可在像素值(如 600,"450")或百分比值(如 "50%","100%")中指定。请注意,百分比值与父元素相关。
    • height - 默认:100%,Unity 内容的高 (Height)。可在像素值(如 600,"450")或百分比值(如 "50%","100%")中指定。请注意,百分比值与父元素相关。
    • fullInstall - 默认:false,如果不可用将完全安装网络播放器 (Web Player)。通常只安装一小部分网络播放器 (Web Player),剩余的文件以后自动下载。
    • enableJava - 默认:true,启用基于 Java 的安装。一些平台不支持该功能。
    • enableClickOnce - 默认:true,启用基于 ClickOnce 的安装。只在 Internet Explorer 浏览器中工作。
    • enableUnityAnalytics - 默认:true,通知 Unity 网络播放器 (Web Player) 安装信息。如果网络播放器 (Web Player) 已安装,该项不会启用。
    • enableGoogleAnalytics -默认:true,通知 Unity 网络播放器 (Web Player) 安装使用 Google Analytics。如果网络播放器 (Web Player) 已安装,该项不会启用。
    • params - 默认:{},嵌入播放器 (Player) 时使用的其他参数,对自定义 Unity 体验很有帮助。
      • backgroundcolor - 默认:"FFFFFF",加载时网络播放器内容显示区域的背景色,默认为白色。仅限专业版
      • bordercolor - 默认:"FFFFFF",加载时网络播放器内容显示区域的边框颜色。仅限专业版
      • textcolor - 默认:"000000",错误信息文字的颜色(例如数据文件加载失败时)仅限专业版
      • logoimage - 默认:Unity 徽标,自定义徽标图像路径,加载时该图像位于网络播放器内容显示区域中央。仅限专业版
      • progressbarimage - 加载时用作进度条的自定义图像路径。进度条图像的宽度根据完成的文件加载量进行裁剪,采用动画效果,从零像素宽开始直至加载完成时到达原始宽度。进度条位于徽标图像下方。仅限专业版
      • progressframeimage - 加载时将进度条框起来的自定义图像路径。仅限专业版
      • disableContextMenu - 该参数控制用户右击或控件单击内容时 Unity 网络播放器 (Web Player) 显示上下文菜单与否。将其设置为 true 可禁止上下文菜单出现并允许内容利用右击行为。使上下文菜单不包含该参数。
      • disableExternalCall - 该参数控制 Unity 网络播放器 (Web Player) 是否允许内容与基于浏览器的 JavaScript 通信。设置为 true 可禁止浏览器通信,这样内容就无法在浏览器中调用或执行 JavaScript,默认为 false。
      • disableFullscreen - 该参数控制 Unity 网络播放器 (Web Player) 是否允许在全屏模式下查看内容。设置为 true 可禁止全屏查看并从上下文菜单中删除“全屏 (Go Fullscreen)” 项,默认为 false。
    • attributes - 默认:{},包含属性列表的对象,根据浏览器不同,会将其添加到 <object> 或 <embed> 标签下。
    • debugLevel - 默认:0,启用/禁用记录,开发时可用来在浏览器控制台上查看进度。设置为大于零的值即可启用。

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

函数

observeProgress

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

参数 (Parameters):

  • callback - 回调函数将接收有关插件安装/初始化的信息。该回调函数将接收一个 progress 对象。
    • progress - 其中包含有关插件安装/初始化的当前步骤信息。
      • pluginStatus - 将包含一个识别插件状态的字符串,可以是下列几个中的一个:
        • unsupported` - 不支持当前浏览器 (Browser)/OS
        • missing - 支持的平台,但插件已安装。
        • installed - 插件已完成安装或已安装。
        • first - 播放游戏第一帧时,插件安装完后调用(如果先前插件已安装完成则不会调用)
      • targetEl - DOM 元素 (DOM Element) 作为网络播放器的容器(与通过 UnityObject2.initPlugin 时的元素相同)
      • bestMethod - 如果插件缺失,将包含当前平台的最佳安装路径,可以是以下字符串中的一个:
        • JavaInstall - 将使用我们的“单击一次 (One Click)” Java Applet 来安装插件
        • ClickOnceIE - 将使用 Internet Explorer 的单击一次 (Click Once) 安装
        • Manual - 请求用户下载文件并手动安装
      • unityObj- 引用之前创建的 unityObject2 实例来负责此次回调
      • ua - 包含一些用于确定 pluginStatus 和 bestMethod 的用户代理 (User Agent) 信息。

initPlugin

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

参数 (Parameters):

  • containerElement - DOM 元素 (DOM Element) 作为网络播放器的容器
  • gameURL - 网络播放器数据文件 (.unity3d) 的链接。可以是绝对链接或相对链接。

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

installPlugin

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

参数 (Parameters):

  • method - 默认:this.getBestInstallMethod()。指定用于安装的方法的字符串。值可以是:JavaInstall、ClickOnceIE、Manual。

注意: 在每个平台/浏览器中并非所有方法都可用。手册会下载一个 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文