您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 我学院Unity与浏览器信息发送交互方法
学游戏,就上我学院内容与网页之间基本是两类交互:从网页向Unity内容调用函数由Unity内容网页调用函数下面就详细说明这两种方式调用过程。从网页向Unity内容调用函数UnityWebPlayer的插件或ActiveX控件都有一个SendMessage()的方法,网页用这个方法与Unity进行沟通,这与Unity脚本接口里的GameObject.SendMessage极其类似。通过该函数可以传递对象名、函数名或简单参数,然后SendMessage()就会调用GameObject上给定的函数。在调用SendMessage()之前,必须先得到UnityWebPlayer的引用。这里可以使用javascript对象document的getElementById()函数来获得该引用。下面是一个例子,他会执行SendMessage(),嵌入在Object或embed标签下的Unitywebplayer的id是UnityContent,方法会从一个名为MyObjectGameObject上的MyFunction()函数,并传递一名话作为参数。scripttype=text/javascriptlanguage=javascript!--functionSaySomethingToUnity(){document.getElementById(UnityContent).SendMessage(MyObject,MyFunction,Hellofromawebpage!);}--/script在Unity内容里,你需要放置一个名叫MyObject的GameObject对象,并在该对象上附加实现了名MyFunction方法的脚本文件。functionMyFunction(param:String){Debug.Log(param);}由Unity内容网页调用函数Unity内容通过执行Application.ExternalCall()来调用任何在网页里定义Javascript函数,比如下面一句调用了网页里SayHello(),并传递了一句话作为参数。Application.ExternalCall(SayHello,Thegamesayshello!);在网页里需定义SayHello()方法,如下所示:scripttype=text/javascriptlanguage=javascript!--functionSayHello(arg){//showthemessagealert(arg);学游戏,就上我学院}--/script另一种从Unity里执行任意浏览器代码的方式你甚至不用在所嵌入的网页定义函数,反而通过调用Application.ExternalEval()来执行内置在浏览器里的代码。如下代码检查Unity内容是否访问自unity3d.com,如果不是重定向网页地址,这个技术可以用来防止深链接对该内容的访问。Application.ExternalEval(if(document.location.host!='unity3d.com'){document.location='});更多Unity教程及使用方法请上我学院:
本文标题:我学院Unity与浏览器信息发送交互方法
链接地址:https://www.777doc.com/doc-2412202 .html