Unity3D和網頁數據交互的基本原理

簡介:javascript

一、Unity3D的遊戲引擎是和編輯器集成在一塊兒的,全部它也是一個製做/開發平臺。php

二、Unity3D是使用JavaScript、C#做爲核心腳本語言來驅動事個遊戲引擎。html

三、平臺能夠發佈Exe執行文件或者打包爲可供網頁調用的一個獨立的包文件。java

四、用Unity3D製做的工程具備高度的可移植性,能夠在PS xbox360 Android iPhone mac等系統上運行。web

嵌入網頁:數據庫

一、用Unity3D實現嵌入網頁和Flash插入網頁原理徹底一致,也是使用ActiveX控件嵌入在網頁中。因此和Flash同樣,須要安裝一個播放器插件(小於3M)。數組

 

二、查看頁面源碼,能夠看到以下嵌入部分:瀏覽器

<object id="UnityObject" classid="clsid:444785F1-DE89-4295-863A-D46C3A781394"width="600" height="450"codebase="http://webplayer.unity3d.com/download_webplayer/UnityWebPlayer.cab#version=2,0,0,0">app

         <param name="src" value="MyDataFile.unity3d" />jsp

         <embed id="UnityEmbed" src="MyDataFile.unity3d" width="600" height="450"type="application/vnd.unity" pluginspage="http://www.unity3d.com/unity-web-player-2.x" />

</object>

三、和Flash同樣,在瀏覽器中加載3D場景或者讀取時的圖標進度條都能進行自定義,也能夠自定義是否激活是用右鍵菜單。

 

數據交互

一、在Unity3D中調用網頁js函數

         若是咱們在html中有腳本函數;則在u3d中咱們可用使用Application.ExternalCall調用js函數,該方法只適合在Web3D環境下使用。該方法支持基本類型的傳遞和數組傳遞,任何類型都會轉換成字符串類型使用。

例子代碼:

Application.ExternalCall("SayHello","The game says hello!);//調用SayHello,傳遞一個字符串

 

二、在Unity3D中直接執行一段腳本代碼如:

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

 

三、在js中調用Unity3D函數(傳遞消息等)

若是有Unity3D中有一段用JS寫的功能函數:

function MyFunction(param:String)

{

         Debug.Log(param);

}

須要在JS中呼叫這個函數則能夠這樣寫:

<script type="text/javascript" language="javascript">

SaySomethingToUnity(document.getElementById("UnityContent").SendMessage("MyObject","MyFunction","Hello fom a web page!"););

</script>

這裏要注意的是MyObject表明Unity3D中的一個場景名稱爲MyObject,MyFunction是調用的函數,最後一個字符爲傳遞的參數。

 

與php,jsp等的表單數據交互

         與php,jsp等的表單數據交互極可能會是從此用到的主要方式,原理是利用form表彰傳遞數據,下面以php爲例來進行說明。

         Unity3D能夠實現向某個指定頁面發送表單數據而後在php中使用_POST獲取傳遞回來的表彰數據。好比:

<?php

         $action = $_POST["myform_action"];//定義一個變量$action用來獲取頁面傳遞過來的表單數據

         if($action!=""){

                  echo $action;//若是接收到了數據則打印出數據內容

         }

?>

在Unity3D中咱們發送數據的代碼以下:

var form = new WWWForm();//定義一個網頁表單

form.AddField("myform_action","Action1");//添加一個表彰字段名稱爲myform_action內容是action1

var download = new WWW("www.xxx.com/index.php",form);//發送表單數據到指定網址頁面

假如index.php執行的是數據庫/統計操做,咱們就能夠對傳遞的數據進行保存讀取或者其餘操做了。

相關文章
相關標籤/搜索