纳金网

标题: 如何在Unity3d中实现和网页数据的交互 [打印本页]

作者: robert    时间: 2012-3-21 07:43
标题: 如何在Unity3d中实现和网页数据的交互




由于Unity3d的游戏引擎是和编辑器集成在一起的,所以它也是一个制作/开发平台。Unity3d是使用Javascript C#作为核心脚本语言来驱动整个游戏引擎,可以发布Exe执行文件或者打包为可供网页调用的一个独立的包文件。用Unity3d制作的工程具有高度的可移植性,可以在ps xbox360,android和 iphone mac 等系统上运行。









用Unity3d实现嵌入网页和Flash插入网页原理完全一致,也是使用ActiveX控件嵌入在网页中。所以和Flash一样,需要安装一个播放器插件(小于3M)。                       察看页面源代码,则可以看到如下嵌入部分









<objectid="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>









在unity3d中和网络进行数据交互可以调用网页js函数,比如:




[pre]Application.ExternalCall(

"SayHello", "The game says hello!" );[/pre]









或者在unity3d中直接执行一段脚本代码如:




[pre]Application.ExternalEval([/pre][pre]

"if(document.location.host != 'unity3d.com') {

document.location='http://unity3d.com'; }"









如果在Unity3d中有一段用js写的功能函数:









function

MyFunction(param : String




    {




Debug.Log(param);




    }









需要在js中呼叫这个函数则可以这样写:




<script

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




<!--function SaySomethingToUnity(document.getElementById("UnityContent").SendMessage("MyObject",

"MyFunction", "Hello from a web page!");-->




</script>









这里要注意的是MyObject代表Unity3d中的一个场景名称为MyObject ,MyFunction是调用的函数,最后一个字符为传递的参数。









与php,jsp等的表单数据交互很可能会是今后用到的主要方式,下面以php为例来进行说明。Unity3d可以实现向某个指定页面发送表单数据然后在php中使用_POST获取传递回来的表单数据。比如:









<?php




$action=$_POST["myform_action"];




if ($action!=””){echo$action;}




?>









在unity3d中我们发送数据的代码如下:









varform = newWWWForm();




form.AddField(

"myform_action", "Action1" );




vardownload =

newWWW( “www.XXXX.com/index.php”, form );




作者: 可可    时间: 2012-3-21 09:08
gd
作者: 艳阳天    时间: 2012-3-21 13:12
hd
作者: LUCKstar    时间: 2012-3-21 20:52
交互式
作者: LUCKstar    时间: 2012-3-27 11:56

作者: Tomoya    时间: 2012-3-29 19:53
  
作者: Zack    时间: 2012-11-25 03:41
学习了。谢谢!




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5