解说Unity 网络播放器 (Web Player) 和浏览器通信
包含Unity网络播放器 (Web Player) 内容的HTML页面能够与该内容进行双向通信。总体而言,存在两种主要的通信方法:
- 网页在Unity网络播放器 (Web Player) 内容中调用函数。
- Unity网络播放器 (Web Player) 内容在网页中调用函数。
下面将对这两种通信方法进行详细阐述。
从网页中调用Unity网络播放器 (Web Player) 内容函数
Unity网络播放器 (Web Player) 对象具备一个SendMessage()函数,此函数可从网页调用,进而在Unity网络播放器 (Web Player) 内容里调用其他函数。该SendMessage()函数与Unity脚本API中的GameObject.SendMessage函数极为相似。当从网页调用时,需要传递对象名称、函数名称以及单个参数,SendMessage()会在对应的游戏对象中调用指定的函数。
若要调用Unity网络播放器 (Web Player) 的SendMessage()函数,首先必须引用Unity网络播放器对象。在Unity生成的默认HTML中,可以使用GetUnity()函数来获取对象引用。以下是一个JavaScript函数示例,该示例将在Unity网络播放器 (Web Player) 中执行SendMessage()函数,而SendMessage()函数会在名为MyObject的游戏对象中调用MyFunction()函数,并传递一段字符串数据作为参数。
// initializing the WebPlayer
var u = new UnityObject2();
u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d");
function SaySomethingToUnity() {
u.getUnity().SendMessage("MyObject", "MyFunction", "Hello from a web page!");
}
这个示例展示了如何利用网页与Unity网络播放器 (Web Player) 内容进行交互,通过调用特定的函数并传递参数,实现了网页与Unity内容之间的通信。