`

unity3d和网页数据交互的基本原理(转)

 
阅读更多
介绍:
1. u3d是一个3D游戏引擎由于和编辑器集成在一起 所以也可以理解为一个制作/开发平台
2. u3d使用javascript C#作为核心脚本语言 来驱动整个游戏引擎
3. 平台可以发布为Exe执行文件或者打包为供网页调用的一个独立的包文件
4. u3d制作的工程具有高度的可移植性 可以在ps xbox360 android iphone mac 等系统上运行

嵌入网页
1. 实现和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中我们可以写函数来调用js函数如:
[pre]Application.ExternalCall( "SayHello", "The game says hello!" );[/pre]
2. 在unity3d中直接执行一段脚本代码(这也是可行的) 如:
[pre]Application.ExternalEval([/pre][pre] "if(document.location.host != 'unity3d.com') { document.location='http://unity3d.com'; }"
绿色部分是一个字符串 也是一段js脚本在u3d可以直接执行一段js脚本

3. 在js中调用unity3d函数(传递消息等)
假如在u3d中有一段功能函数(也是用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代表u3d中的一个物体名称为MyObject ,MyFunction是赋予给这个问题的函数,最后一个字符为传递的参数。如此可以实现调用和数据传递。


与php,jsp?等的表单数据交互
这应该是今后会可能用到的主要方式 原理是利用form表单传递数据 php中已经使用过多次 没有问题 jsp中应该同理

以php为例
U3d可以用向某个指定页面发送表单数据然后在php中使用_POST获取传递过来的表单数据
比如我们有一个网页: www.dreamloader.net/index.php
其页面源文件如下:
<?php
$action=$_POST["myform_action"];//定义一个变量$action用来获取页面传递过来的表单数据
if ($action!=””){echo$action;}//如果接受到了数据则打印出数据内容
?>

在unity3d中我们发送数据的代码如下:
varform = newWWWForm();//定义一个网页表单form.AddField( "myform_action", "Action1" );//添加一个表单字段名称为myform_action内容是Action1
vardownload = newWWW( “www.dreamloader.net/index.php”, form );//发送表单数据到指定网址页面


假如index.php中执行的是数据库/统计操作 我们就可以对传递的数据进行保存读取或者其他操作了
分享到:
评论

相关推荐

    Unity3D与网页数据交互的基本原理1

    Unity3D与网页数据交互主要涉及两种方法: 1. **Unity3D调用网页JavaScript函数**: - Unity3D提供了`Application.ExternalCall`方法,通过这个方法,可以在Unity3D的C#脚本中调用网页中的JavaScript函数。例如,...

    unity3d和网页数据交互的基本原理

    《Unity3D与网页数据交互的基本原理》 Unity3D(简称u3d)是一款强大的3D游戏开发引擎,集成了编辑器,使得开发者能够轻松地进行3D内容创作。它支持JavaScript和C#作为核心脚本语言,用于驱动游戏引擎的运行。Unity...

    Unity3d的调用web交互

    总结,Unity3D调用Web交互涉及多个方面,包括选择合适的API、处理网络请求、确保数据安全性以及处理不同平台的特性和限制。理解并掌握这些知识点,将有助于你在项目中实现高效、可靠的Web交互功能。

    Embedded Browser 最新unity3d内嵌网页插件

    3. **交互性**:除了基本的浏览,Embedded Browser还允许Unity3D与网页内容进行交互。例如,可以触发JavaScript函数,获取网页的反馈,或者将Unity中的数据传递到网页。 4. **自定义设置**:开发者可以根据需求调整...

    unity 3D webview插件

    - **网页加载与交互**:插件支持加载任何HTTP或HTTPS URL,并允许与网页进行基本的JavaScript交互,如调用Unity方法或传递数据至网页。 - **性能优化**:考虑到性能问题,Webview插件通常会使用原生的WebView组件...

    3DGame.rar_unity3D场景_unity3D游戏 c_unity3d 网页

    本资源"3DGame.rar"包含了一个完整的Unity3D游戏项目,特别适合初学者了解和学习3D网页游戏的开发流程。 首先,我们要理解Unity3D场景的工作原理。在Unity中,场景是游戏世界的一个特定状态,包含了所有游戏对象、...

    Unity3d 饼状图

    Mesh对象是Unity3D中的基本构建块,它可以定义游戏对象的形状和外观。 创建饼状图的第一步是计算每个扇形的角度。每个扇形的角度应等于该部分在整个数据集中的比例乘以360度。例如,如果某部分占总比例的25%,那么...

    基于Unity3D的虚拟现实技术在转辙机三维仿真培训系统中的应用研究.pdf

    通过对S700K型电动转辙机结构和原理进行分析和研究,运用虚拟现实技术,利用Unity3D引擎开发平台,创建三维仿真虚拟交互环境,运用数据库技术对系统比赛功能模块中参赛人员及管理员信息数据进行存储、调用、管理,...

    unity3D Dynamic Water动态水资源

    这个主题涉及的技术点非常丰富,下面将详细介绍Unity3D中动态水体的实现原理和相关知识点。 1. **水面着色器(Water Shader)**: 动态水效果的核心是水面着色器。Unity3D支持自定义Shader编写,开发者可以利用...

    unity3d网络通讯的封包,解包与简单的异或加密

    这个项目为学习Unity3D网络通信和简单的数据加密提供了一个实践平台。 总之,理解并熟练掌握网络封包、解包以及基本的加密技术对于Unity3D游戏开发至关重要。通过实际项目练习,可以帮助开发者更好地运用这些概念,...

    Unity3d游戏提取资源工具

    1. **资源解析**:工具能够识别Unity3d的资源文件格式,解析内部的结构和数据,将它们转换成可读的格式。 2. **资源导出**:支持将提取的资源导出为通用格式,如.png(图片)、.obj(3D模型)、.wav或.mp3(音频)...

    我的世界Unity3d 版demo

    最后,考虑到《我的世界Unity3d版Demo》是一个学习资源,它很可能包含了详细的代码注释和教程文档,帮助初学者理解每一部分的实现原理。对于希望深入学习Unity3d游戏开发的人来说,这是一个极好的起点。 总的来说,...

    unity3d 反编译最新版

    通过这些工具和库,开发者可以深入到Unity3D打包的资源中,提取3D模型、纹理、音频和脚本,从而进行二次开发、调试或者学习Unity3D的工作原理。然而,值得注意的是,反编译行为可能涉及到版权和法律问题,因此在实际...

    unity 3d场景 八叉树 算法

    Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏制作、虚拟现实和增强现实等领域。在处理复杂的3D场景时,性能优化显得尤为重要,尤其是当场景中包含大量可交互的对象时,可能会出现卡顿现象。为了解决...

    unity3d答题系统 unity3d,答题系统 unity3d,答题系统 unity3d,

    下面将详细探讨Unity3D答题系统的实现原理和相关知识点。 一、Unity3D基础 Unity3D使用C#作为主要编程语言,通过其内置的MonoDevelop编辑器编写脚本。引擎支持3D图形渲染、物理引擎、音频处理、动画系统等功能,...

    JCar.zip_Unity3D的游戏_unity3d

    《Unity3D游戏开发——基于"JCar"的探索与解析》 Unity3D,作为全球最流行的...对于学习Unity3D的开发者来说,"JCar"是一个极好的实例,通过分析其源代码和资源,可以深入理解Unity3D的工作原理,提升自己的开发技能。

    Unity3D仿仙剑回合制游戏源码.zip

    【Unity3D游戏开发概述】 Unity3D是一款强大的跨平台3D游戏开发引擎,由Unity Technologies开发。...通过分析源码,开发者不仅可以学习到Unity3D的游戏开发技巧,还能理解回合制游戏设计的基本原理和实现方式。

    Unity3D贪吃蛇源码

    本资源"Unity3D贪吃蛇源码"提供了一个简单的贪吃蛇游戏实现,旨在帮助初学者理解Unity3D的基本操作和编程原理,特别是与物体移动、算法和碰撞检测相关的知识。 1. **Unity3D基本概念**: - **场景(Scene)**:...

    LipSync for Unity3D 根据语音生成口型动画.zip

    在Unity3D游戏开发中,为了提高角色的真实感和交互体验,开发者们经常需要为游戏角色添加语音和口型同步功能。LipSync for Unity3D是一款强大的插件,能够帮助我们根据语音文件自动生成与之匹配的口型动画,使得角色...

Global site tag (gtag.js) - Google Analytics