同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好,第1张

两个引擎思路设计是不一样的:

Unreal注重的是工业化流程, 强调整体性, 官方性 所以你会发现Unreal很少会有那么多的插件和扩展(普及程度是最大原因, 但还是和设计有关系)

Unity3D的思路就是全脚本化, 让大家来给它做各种Mod, 可以说是用互联网思想来做引擎 有了流量和用户, 普及就不是啥问题, 更可以说自己的哲学是正确的

题主所说的, 用带反射的语言来做 Unity3D就是这么完成的编辑器 可以说, 编辑器本身完完全全都是用引擎本体写出来的 但引擎本体本没有编辑器支持

而虚幻呢, 由于老的一些架构和思想下, 还是使用引擎本体糅合编辑器的功能, 通过宏控制来制作 但多年的编写经验证明这么做其实也还好 这是用C++做脚本这点 我也感觉不大好, 至少来说, 开发效率和普及就受到很严重的牵制

另外我觉得, Unreal这种整合方式的思想和Unity3D这种MOD开发的思想肯定会长期存在的, 各有各的好处 有的人喜欢完善, 有的人喜欢自定义 就像Windows和Linux一样

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

简介:

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://webplayerunity3dcom/download_webplayer/UnityWebPlayercab#version=2,0,0,0">

<param name="src" value="MyDataFileunity3d" />

<embed id="UnityEmbed" src="MyDataFileunity3d" width="600" height="450"type="application/vndunity" pluginspage="http://wwwunity3dcom/unity-web-player-2x" />

</object>

3、和Flash一样,在浏览器中加载3D场景或者读取时的图标进度条都能进行自定义,也可以自定义是否激活是用右键菜单。

数据交互

1、在Unity3D中调用网页js函数

如果我们在html中有脚本函数;则在u3d中我们可用使用ApplicationExternalCall调用js函数,该方法只适合在Web3D环境下使用。该方法支持基本类型的传递和数组传递,任何类型都会转换成字符串类型使用。

例子代码:

ApplicationExternalCall("SayHello","The game says hello!);//调用SayHello,传递一个字符串

2、在Unity3D中直接执行一段脚本代码如:

ApplicationExternalEval("if(documentlocationhost!='unity3dcom'){documentlocation='http://unity3dcom';}");

3、在js中调用Unity3D函数(传递消息等)

如果有Unity3D中有一段用JS写的功能函数:

function MyFunction(param:String)

{

DebugLog(param);

}

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

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

SaySomethingToUnity(documentgetElementById("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();//定义一个网页表单

formAddField("myform_action","Action1");//添加一个表彰字段名称为myform_action内容是action1

var download = new WWW("wwwxxxcom/indexphp",form);//发送表单数据到指定网址页面

假如indexphp执行的是数据库/统计操作,我们就可以对传递的数据进行保存读取或者其他操作了。

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/4039038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-04-11
下一篇2024-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存