纳金网

标题: Unity 3D 引擎中数据交互问题 [打印本页]

作者: 奔跑的小兔    时间: 2012-3-22 14:44
标题: Unity 3D 引擎中数据交互问题
    第一节:必备的基础知识
       在做Unity 3D引擎数据交互问题之前,需要必备以下知识。
1,您对Unity 3D要进行有针对性的了解,不要求您对Unity 3D有更深入的了解,在网上找些相关的介绍资料。比如:Unity 3D的脚本手册,一些Unity 3D图形界面的基本操作常识,本教程,假设您对Unity 3D用户界面相关对象有一些了解,对javascript和php有些了解。
       2,先来认识下面一段代码,是不是同flash有相似性。其实Unity 3D的实现原理同flash差不多。
document.write('<object id="UnityObject" classid="clsid:444785F1-DE89-4295-863A-D46C3A781394" width="800" height="500">
');
document.write(' <param name="src" value="game.unity3d" />
');
document.write('<embed id="UnityEmbed" src="game.unity3d" width="800" height="500" type="application/vnd.unity" pluginspage="http://www.unity3d.com/unity-web-player-2.x" />
');
document.write('</object>');
       3.数据交互的Unity 3d函数 ,要实现同后台的交互您需要了解以下的一些知识.无论后台是用php,perl,c#,jsp都可以实现交互。
       1>在Unity 3D中可以通过以下方式调用HTML中的函数.
在Unity 3D中写如下代码:Application.ExternalCall( "SayHello", "The game says hello!" );
在Html中编写一段Javascript代码:
<script type="text/javascript" language="javascript">
<!--
function SayHello( arg )
{
    //将弹出Unity3d中传递的消息。
    alert( arg );
}
-->
</script>
       2>在Unity 3D中可以通过以下方式直接执行一段Javascript代码。
在Unity 3D中编写以下代码:
Application.ExternalEval(
    "if(document.location.host != 'google.com') { document.location='http://google.com.com'; }"
);
       3>在Html页面中用Javascript函数调用Unity 3D中的函数。
*Html页面中的Javascript函数如下:
<script language="javascript1.1" type="text/javaScript">
                            <!--
                            function SaySomethingToUnity(){
                                   document.getElementById("UnityObject").SendMessage("First Person Controller", "ShowName", "<?=$name?>");
                            }
                            -->
                     </script>
其中UnityObject是Unity 3D 生成的Object对象的ID, First Person Controller是Unity 3D中的一个物体,ShowName是作用于该物体上的Javascript函数名,<?=$name?>是传递的消息,是一个字符串,可以是php语句,也可以是jsp语句.
       还可以在Html页面中写以下的相同功能的函数.
<script type="text/javascript" language="javascript">
<!--
function SaySomethingToUnity()
{
    GetUnity().SendMessage("First Person Controller ", " ShowName ", "<?=$name?>");
}
-->
</script>
       *在Unity 3D中编写以下代码:
function ShowName(param:String){//外部调用函数
       showName="Username:    "+param;
}
同时在相关位置编写如下调用Html中的javascript代码。
Application.ExternalCall ("SaySomethingToUnity");


转载于:http://hi.baidu.com/skyhaiwei/blog/item/497639de18a83d69d1164e43.html




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