找回密码
 注册帐号

扫一扫,访问微社区

unity 网络播放器 (web player) 和浏览器通信

2015-1-8 18:29| 发布者: 杨炎| 查看: 1851| 评论: 0|原作者: 蛮牛|来自: unity3d脚本manual

摘要: unity 网络播放器 (web player) 和浏览器通信包含unity 网络播放器 (web player)内容的 html 页面可与该内容通信,反之亦然。基本上有两种通信方法:网页在 unity 网络播放器 (web player) 内容中调用函数。unity 网 ...

unity 网络播放器 (web player) 和浏览器通信

包含unity 网络播放器 (web player)内容的 html 页面可与该内容通信,反之亦然。基本上有两种通信方法:

网页在 unity 网络播放器 (web player) 内容中调用函数。

unity 网络播放器 (web player) 内容在网页中调用函数。

下面对两种通信方法进行了详细阐述。

从网页中调用 unity 网络播放器 (web player) 内容函数

unity 网络播放器 (web player) 对象有一个sendmessage()函数,可从网页中调用,以便在 unity 网络播放器 (web player) 内容中调用函数。该函数与 unity 脚本 api 中的object" target="_blank" class="relatedlink">gameobject.sendmessage函数非常类似。从网页中调用时传递对象名称、函数名称和单个参数,sendmessage()会在相应的游戏对象中调用给定函数。

为了调用 unity 网络播放器 (web player) 的sendmessage()函数,必须先引用 unity 网络播放器对象。可以在 unity 生成的默认 html 中使用getunity()函数,获得对象引用。以下是一个 javascript 函数示例,它将在 unity 网络播放器 (web player) 中执行sendmessage()函数,反过来sendmessage()会在名为myobject的游戏对象中调用myfunction()函数,传递一段字符串数据作为参数。

在 unity 网络播放器内容中,必须拥有一个脚本附加到myobject游戏对象 (gameobject)中,该脚本须执行myfunction函数:

function myfunction(param : string)

{

debug.log(param);

}

注意:请记住,如果函数没有任何参数,那么应传递一个空字符串 ("") 作为参数。

使用sendmessage()时须传递一个单字符串、整数或浮点数参数,该参数是调用方所需的。如果不需要该参数,则只传递零或其他默认值,在 unity 上忽略。此外,名称指定的游戏对象可以路径名称的形式给出。例如,/myobject/somechild中的somechild` 必须是myobject的子对象,由于其名称前有 '/' 字符,myobject`` 必须在根目录。

注意:如果游戏未完全加载,u.getunity() 可能返回空值,所以最好是在使用 sendmessage() 前检查并确认该值不是空值。或等游戏完全加载,再尝试与其通信。

从 unity 网络播放器内容中调用网页函数

为了从 unity 网络播放器内容中调用网页函数,必须使用application.externalcall()函数。使用该函数可以调用网页中定义的任何 javascript 函数,向其传递任意数量的参数。以下是一个 unity 脚本示例,使用application.externalcall()函数调用网页中名为sayhello()的函数,传递一段字符串数据作为参数:

application.externalcall( "sayhello", "the game says hello!" );

该网页须定义sayhello()函数,例如:

从 unity 网络播放器内容中执行任意浏览器代码

甚至不必在嵌入的网页中定义函数,而是使用application.externaleval()函数从网络播放器内容中执行任意浏览器代码。

以下示例检查页面嵌入的网络播放器内容是否从某主机 (unity3d.com) 中提取,如果不是,则重定向至另一网址。该技术可防止深层链接至网络播放器内容:

application.externaleval(

"if(document.location.host != 'unity3d.com') { document.location='http://unity3d.com'; }"

);

相关阅读

文章点评
相关文章
蛮牛教育10.1大促销!全站6折扣!