簡介:
1、Unity3D的游戲引擎是和編輯器集成在一起的,所有它也是一個制作/開發平台。
2、Unity3D是使用JavaScript、C#作為核心腳本語言來驅動事個游戲引擎。
3、平台可以發布Exe執行文件或者打包為可供網頁調用的一個獨立的包文件。
4、用Unity3D制作的工程具有高度的可移植性,可以在PS xbox360 Android iPhone mac等系統上運行。
嵌入網頁:
1、用Unity3D實現嵌入網頁和Flash插入網頁原理完全一致,也是使用ActiveX控件嵌入在網頁中。所以和Flash一樣,需要安裝一個播放器插件(小於3M)。
2、查看頁面源碼,可以看到如下嵌入部分:
<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">
<param name="src" value="MyDataFile.unity3d" />
<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>
3、和Flash一樣,在瀏覽器中加載3D場景或者讀取時的圖標進度條都能進行自定義,也可以自定義是否激活是用右鍵菜單。
數據交互
1、在Unity3D中調用網頁js函數
如果我們在html中有腳本函數;則在u3d中我們可用使用Application.ExternalCall調用js函數,該方法只適合在Web3D環境下使用。該方法支持基本類型的傳遞和數組傳遞,任何類型都會轉換成字符串類型使用。
例子代碼:
Application.ExternalCall("SayHello","The game says hello!);//調用SayHello,傳遞一個字符串
2、在Unity3D中直接執行一段腳本代碼如:
Application.ExternalEval("if(document.location.host!='unity3d.com'){document.location='http://unity3d.com';}");
3、在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執行的是數據庫/統計操作,我們就可以對傳遞的數據進行保存讀取或者其他操作了。