找回密码
 立即注册

unity3d与web交互的办法

已有 9692 次阅读2012-11-26 15:20 | unity3d, web, 交互

如同大家所知道的U3D WEB播放器插件和ActiveX空件都有SendMessage()函数,它用于从web上调用U3D WEB播放器内部的内容函数,这个和U3D里的GameObject.SendMessage函数类似 从WEB上调用的时候,传递一个物体名称,一个函数名和一个单一参数,SendMessage()将在指定游戏物体上调用给定的数据.
为了调用U3D WEB播放器的SendMessage()函数必须先给正在显示的U3D WEB播放器内容引用.可以用JS的document和它的getElementById()函数获取对象.这有个帮助上的例子 JS函数在U3D WEB播放器内容上执行函数获取对象,物体/嵌入标签ID值为UnityContent:然后SendMessage()调用名为MyObejct物体上函数MyFunction,并且传递一段字符传数据

<script type="text/javascript"language="javascript">
<!--
function SaySomethingtoU3D()

document.getElementByIdx_x("UnityContent").SendMessage("MyObject","MyFunction","Hello U3D!");

}
-->
</script>
那么在U3DWEB播放器内容内部,就需要一个脚本名为MyObject的游戏物体 并且在该游戏物体上的有一个MyFunction的函数;(-_-!)没有我就没办法了...

如:
function MyFunction(text:String)
Debug.Log(text);
使用SendMessage()时,一个字符串,整形或者浮点型参数必须被传递,该参与在调用方是必须的.如果你不需要,那么仅仅传递一个零值或者直接却省,并且在U3D里忽略它.还有就指定的游戏物体可以路径名给出 如/MyObjcet/SomeChild这里SomeChild必须是MyObject的子,而且呢MyObject必须在根级上,因为'/'名称在前

还有在发布WEB播放器内容的时候生成的默认HTML文件包含了对象和嵌入标签以便使用内用所在的浏览器适当的加载,为了允许基于浏览器的JS能分辨2个标签,它门每个都使用不同的ID UnityObject用于对象标签,UnityEmbed用于嵌入标签.因此,却省的HTML也包含一个JS函数,GetUnity(),它执行简单的浏览检测并返回一个使用标签元素引用.这有个帮助的例子

<script type="text/javascript"language="javascript">
<!--
function SaySomethingtoU3D()

GetUnity.SendMessage("MyObject","MyFunction","Hello U3D!");

}
-->
</script>

路过

雷人

握手

鲜花

鸡蛋

全部作者的其他最新日志

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-29 05:36 , Processed in 0.043901 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

返回顶部