银河帝国是unity3d做2d游戏戏还是3d游戏

支持多平台!2D和3D游戏引擎Godot宣布开源
发表于 17:00|
作者唐小引
摘要:Godot是一款功能非常全面的开源游戏引擎,可用于PC、移动、主机及Web游戏开发,其功能集类似Unity,拥有着功能丰富而又灵活的编辑器、GUI工具包、2D/3D物理支持、语言及API,却也简单易用。
近日,一款名为Godot的全新开发的,功能非常全面的游戏引擎在MIT许可下开源,其代码业已托管到GitHub上。据其开发工作室OkamStudio介绍,Godot是由Juan Linietsky和Ariel Manzur开发的一款in-house引擎,可用于PC、移动、主机及Web游戏开发,其功能集类似Unity,拥有着功能非常丰富的编辑器、语言及API,却也简单易用。主要特性:可视化:功能丰富而又非常灵活的编辑器界面2D/3D游戏开发脚本:自定义行为、内置编辑器语法高亮、代码自动补缺设计:用户界面可简单可复杂,开发者可使用自己的工具来编辑游戏内容一键部署到Windows、Linux、Mac、Android、iOS、BB10及HTML5等多个平台作为自己开发的首款引擎,Linietsky对Godot的期望与评价都非常高,尽管与Unity非常类似,但在2D及动画支持方面,却要强于Unity。并且,该引擎不依赖于任何外封装库,除了PC及主流移动平台之外,Godot还支持Xbox及PS。此外,Godot还内置了类似Unity的编辑器、GUI工具包、2D/3D物理支持、支持OpenGL ES 2.1功能集的3D渲染器、易于学习的语言(用于创建着色器和快速处理效果),支持用ASM.js或Google Native Client输出HTML5代码,支持Mac OS X、Windows及Linux开发平台。传送门:(文/唐小引 责编/张宁)
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章当前位置:
2D 3D游戏美工
地点:北京-朝阳区地理位置
行业:计算机服务(系统、数据服务、维修)
经验: 1年以上
性质:民营公司
规模:51-200 职员
月薪:面议
1、有扎实的美术功底,有良好的设计基础。2、能熟练使用Photoshop。3、熟练掌握 3D max,能够使用3DSMAX软件独立制作游戏场景、角色;3、根据业务需求,独立设计游戏中各种美术资源。4、有1年以上美术设计工作经验。5、应聘者请提供一些个人作品。
北京慧宇星河科技有限公司是立足于先进的图形图像技术、人机交互技术与互联网技术,三维虚拟互动体验项目的开发和制作的集成供应商,专注于儿童虚拟仿真互动体验项目开发、三维视景软件研发、虚拟仿真技术应用、三维地理信息系统、三维动画及多通道播放软件研发,同时提供各领域、各行业数字化整体解决方案,专注于数字科技产业的研发及创新。为儿童职业体验馆,科技馆,展览馆,企业展厅等领域打造最具创意、趣味性、视觉冲击力的虚拟现实应用产品及其整体解决方案。
亲,该公司还没有获得点评哦
亲,该公司还没有人发布面经哦
亲,该公司还没有人分享工资哦
亲,该公司还没有人脉入驻哦
如果你正在本公司任职或曾经在本公司任职,
成为第一人吧!
公司地址:北京市朝阳区朝阳路66号国瑞集团02室
*提醒:用人单位招聘人才,以任何名义向应聘者收取费用都属于违法行为。请应聘者提高警惕,切勿上当受骗。
可能感兴趣的职位
央广幸福购物(北...
工作地点:北京-大兴区
岗位工资:面议
光合新知(北京)...
工作地点:北京
岗位工资:元
光合新知(北京)...
工作地点:北京
岗位工资:元
北京丽贝亚建筑装...
工作地点:北京-朝阳区
岗位工资:面议
北京阳光艾克国际...
工作地点:北京-朝阳区
岗位工资:面议
北京微影时代科技...
工作地点:北京-朝阳区
岗位工资:面议
适合你的急招职位
相关职能搜索
相关地区搜索怎么区分什么是2D游戏,什么是3D游戏_百度知道
怎么区分什么是2D游戏,什么是3D游戏
提问者采纳
简单看游戏视角<img class="word-replace" src="/api/getdecpic?picenc=0add游戏固定视角3d由于立体场景所视角能随便变变(面更加详细- -)2D2D图形游戏显著特征所图形元素平面图片形式制作图论拼接整图制作其表、建筑都单张图元素构画则张帧形式预先存些图形元素终都复杂联系式游戏进行调用实现游戏世界丰富内容另面2D游戏显示技术传统2D游戏少需要调用显卡加速部2D图形元素都通CPU进行款2D游戏图形符合要看 CPU负载能力知道点重要例现二级城市网吧普遍CPU配置高显卡配置低即使3D游戏纵横现我制作款画面丰富、风格独特2D游戏相市场近两2D游戏使用显卡加速显卡技术注定2D图形通<img class="word-replace" src="/api/getdecpic?picenc=0afD技术进行加速即单张图形或画D3D计算帖图形式进行通保证<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fD图形运行达高速度类技术全面瓶颈主要显存帖图数量限制3D显卡技术标准导致别显卡运行像素点阵技术较早期2D技术游戏范例:《幻灵游侠》3D3D技术游戏世界每物体看作立体象由若干几何边体构显示象文件存储象描述语句:象由哪几边体组间位置关系及哪部位使用哪贴图等等描述性内容显示通程序些语句解释实合物体通若干立体几何平面几何公式实计算玩家平面显示器能任意角度观看3D物体构物体边形越合需要计算量越贴图些图像文件称&材质&说边体物体骨架贴图物体皮肤即使仅仅图形显示变化<img class="word-replace" src="/api/getdecpic?picenc=0a007aD引擎世界构任何事情要3D世界观待<img class="word-replace" src="/api/getdecpic?picenc=0a007aD世界观需要解三件事:3D特点●物体真实占空间●任何视点(摄像机)任意移并改变角度●要解光运用游戏范例:《古墓丽影》、《堂2》2D与3D区别2D与3D区别于2D平面与3D立体所谓2D、与3D区别两部第部图形显示技术区别第二部游戏进行程所游戏进行作都平面进行三维空间进行例:即便《MU》采用<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fD图形显示引擎其玩仍纯鼠标点击面(平面)进行实质2D游戏;类似《堂2》、《微软模拟飞行》游戏则标准、真3D游戏我描述2D与3D图像区别2D平面<img class="word-replace" src="/api/getdecpic?picenc=0adD立体2D与3D基本区特点2.5D同具备<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fD与3D游戏特点游戏我称2.5D游戏种3D图<img class="word-replace" src="/api/getdecpic?picenc=0adD精灵(角色、npc等)例《ro仙境传说》;种 2D图<img class="word-replace" src="/api/getdecpic?picenc=0adD精灵例《征服》图设计制作目前没<img class="word-replace" src="/api/getdecpic?picenc=0aD说至伪3D《终幻想7》(FF7或太空战士七)例该作图制作采用<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fD与伪3D技术结合世界图行使用真3D技术所该图具备<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fD技术几特点:物体立体占空间视角变换光照随视角移变化其显易见便视角变换FF7场景图同场景其视角变其实FF7场景图所采用3D 建模、材质再进行2D渲染整合伪3D技术种技术称2D渲染技术伪3D处于比较容易制作物质给表现纯2D技术要做点需要特别专业技术另外视角变场景图FF7却实现精灵(角色、npc)近远透视效种效指透视(纵伸)游戏场景移角色随着场景向前景或背景延伸显渐或渐需要配合程序面进行制作所程序面定限制
提问者评价
3Q.3Q了,不过下面回答问题的也谢谢了,
楼上的回答非常专业也,不过相对较难懂一些,呵呵! 3D游戏和2D游戏的区别简单点说:2D游戏是平面游戏,3D游戏是画面相对立体流畅的3维游戏,更具有真实感!(与小学的时候学的 平面图形 和立体几何图形概念差不多,当然 这个就是属于玩家的一种直观感受,而技术要求方面 3D当然要求就比2D高很多很多,(参照1楼的回答 (*^__^*) 嘻嘻……) 希望回答对你有...
其他类似问题
按默认排序
其他3条回答
楼工夫- -简单说. 2D能转换视角,3D.答完毕.
能通过各种方式使视角改变的是3不能改变的是2最容易的是按住右键拖动看是否改变
你玩的时间长了感觉头晕的就是3D游戏,头不晕的就是2D....这个我的理解......
3d游戏的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之2D游戏开发制作原理(二十一)
Unity3D研究院之2D游戏开发制作原理(二十一)
围观23729次
编辑日期: 字体:
经过了4个月不懈的努力,我和图灵教育合作的这本3D游戏开发书预计下个月就要出版了。这里MOMO先打一下广告,图灵的出版社编辑成员都非常给力,尤其是编辑小花为这本书付出了很大的努力,还有杨海玲老师,不然我也无法完成这本书的编写。等这本书出版了大家记得买喔,哇咔咔~ 下面,这篇文章是MOMO 3D游戏开发书籍中的一小段章节的修改版本,本篇文章我们将探讨一下Unity3D中如何来制作2D游戏。目前市面上已经有非常成熟的2D游戏引擎,比如cocos2d 或cocos2d-x等,并且都是免费的开发者可以直接用来制作2D游戏。然而使用3D引擎来制作2D游戏会让游戏画面更加附有立体感,因为2D游戏中Z轴永远是0,而3D游戏中Z轴是可变化的。
接着说说在Unity3D中制作2D游戏的原理。在Unity3D中绘制贴图的方式大致可分为两种,第一种是在GUI中绘制贴图,第二种是在网格面上绘制贴图。先说说第一种,GUI主要用来制作简单的游戏2D界面,比如游戏主界面中绘制的“游戏名称”、“开始游戏”、“保存游戏”、“退出游戏”一些按钮或界面中一切其它的高级控件,文本框,输入框等等、GUI只能制作简单的图形化界面,因为它的渲染效率非常低,它与3D世界中网格模型的渲染机制完全不一样。第二种的属于将图片绘制在3D中网格平面中,它的渲染效率远远高于GUI中,在制作2D游戏时都是将所有贴图绘制在平面模型对象之上,最后用摄像机以90度垂直的角度照射这这些平面。
下面我们开始学习在Unity3D中制作2D游戏的原理。2D游戏又可以分为两种,区别是物体碰撞时带物理引擎或不带物理引擎。带物理引擎就好比《奋斗的小鸟》一样,大家应该都玩过,小鸟发射后下落击落其它物体将发生物理的碰撞。(我没有细看这款游戏,但是我知道2D 与3D引擎都都可制作),不带物理引擎的就好比《捕鱼达人》这种游戏,游戏中碰撞都是由代码自己来完成的,经典的2D碰撞监测包括:矩形与矩形的碰撞、点与矩形的碰撞、圆与圆的碰撞等。今天这篇文章我们主要讨论第二种不带物理引擎的2D游戏。
如下图所示,我们盘点一下2D游戏中必备的几个元素。
摄像机:无论是3D游戏还是2D游戏摄像机都是非常重要的属性,移动摄像机即可更改屏幕中显示的内容,游戏地图的坐标永远都不会发生改变。
地图:2D游戏中的地图一般是由tile拼接而成,它可由地图编辑器生成然后将每一块tile绘制在整个贴图中,最后将贴图贴在平面网格面之上即可。还有一种作法是将两个或两个以上屏幕大小平面以队列的形式排在屏幕后面,当摄像机移动超出第一块面显示范围时,将它的坐标移动在第二块面后面,此时地图就形成了一个排序的队列。为了让地图的效果更加完美,一般地图可以由好几层来组成,比如背景层、与主角的遮挡曾、物理层等等。
地图拼接:地图的排序队列中两张图应当是可以无缝拼接,这个应当是由美术来提供资源,这里我就不那么细致了将远离说明白即可。
主角:它的范围就比较广的,敌人、物品等等出现在地图之上的都可以使用它。如果控制主角移动,摄像机移动的同时主角也当跟随移动,并且保持屏幕中的移动比例,除非摄像机无法移动,这时将直接移动主角在屏幕中的坐标。 说的有点绕了呵呵,大家仔细想想哈哈。。
然而上面的一切面是由Plane面来完成。
再Unity层次视图中选择摄像机对象,右侧监测面板视图中我们看看摄像机组件的一些属性,如下图所示。需要注意的就是Projection 投影类型。
首先我们应当修改摄像机的属性,默认摄像机投影的类型是Perspective,它保持摄像机以扩散的的形式照射着不利于2D平面的展示。这里我们应当选择Orthographic,这样摄像机将直直的照射在显示的区域。
Perspective类型
Orthographic
从侧面观察摄像机,通过这两张图我相信大家应当能看懂为什么2D游戏要用Orthographic了吧,摄像机的投影类型是可以在代码中动态的修改的。
//得到游戏中摄像机对象
Camera camera = Camera.mainCamera;
//设置摄像机投影类型OrthoGraphic
camera.isOrthoGraphic = true;
//设置摄像机投影类型Perspective
camera.isOrthoGraphic = false;
在代码中取得摄像机投影的区域大小,它也可以动态的修改,这样就可是实现摄像机拉近与拉远的效果。根据投影区域的大小配合着整个地图的宽高来写判断条件,避免移动摄像机时超过地图的范围。
Camera camera = Camera.mainCamera;
Debug.Log(camera.orthographicSize);
接着我们使用代码来得到地图面的宽高,这段代码写的就比较精细,因为网格面是可以缩放的,首先得到网格面的宽与高,然后分别乘以缩放系数就可以得到真实面的宽与高,然而Unity中的坐标是以“米”为单位。下面代码中用到了中文,如果要想在编辑器中显示中文C#语言需要修改编码格式为UTF-16。JavaScript修改编码格式UTF-8或UTF-16即可。
1234567891011121314151617181920212223242526272829
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour {& void Start ()
{& &&&&GameObject plane = GameObject.Find("Plane0");
//得到面默认宽度
float size_x = plane.GetComponent&MeshFilter&().mesh.bounds.size.x;
//得到面宽度的缩放比例
float scal_x = plane.transform.localScale.x;
//得到面默认高度
float size_z = plane.GetComponent&MeshFilter&().mesh.bounds.size.z;
//得到面高度缩放比例
float scal_z = plane.transform.localScale.z;&
//原始宽度乘以缩放比例计算出真实宽度
float mapWidth = size_x * scal_x;
float mapHeight = size_z * scal_z;&
Debug.Log("得到面的位置:"+plane.transform.position);
Debug.Log("得到面的宽度:"+ mapWidth);
Debug.Log("得到面的高度:"+ mapHeight); }&}
有了摄像机照射的区域以及背景地图的宽高尺寸那么就可以在代码中编写逻辑判断条件啦。下面我们来使用简单的代码控制摄像机移动以及主角移动。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
using UnityEngine;using System.Collections;&public class Controller : MonoBehaviour {& //动画数组 private Object[] anim; //主角对象 private GameObject hero; //限制一秒多少帧 private float fps = 10; //帧序列 private int nowFram; //记录当前时间 private float time;& void Start () {
//得到资源名称为down文件夹中的所有对象资源
anim = Resources.LoadAll("down");
//得到主角的对象
hero = GameObject.Find("hero");
}& void FixedUpdate ()
//上、下、左、右平移摄像机
if (Input.GetKey (KeyCode.A))
transform.Translate(-0.01f,0,0);&&&
if(Input.GetKey (KeyCode.D))
transform.Translate(0.01f,0,0);&&
if (Input.GetKey (KeyCode.W))
transform.Translate(0,0.01f,0);&&
if(Input.GetKey (KeyCode.S))
transform.Translate(0,-0.01f,0);&&
//上、下、左、右平移主角 &&&&if (Input.GetKey (KeyCode.J))
&&&&hero.transform.Translate(0.001f,0,0);&&
if(Input.GetKey (KeyCode.L))
&&&&hero.transform.Translate(-0.001f,0,0);&&
if (Input.GetKey (KeyCode.I))
hero.transform.Translate(0,0,-0.001f);&&
if(Input.GetKey (KeyCode.K))
hero.transform.Translate(0,0,0.001f);&&&&
DrawAnimation(anim); }& void&&DrawAnimation(Object[] tex) {&
//计算限制帧的时间
time += Time.deltaTime;
//超过限制帧切换贴图
if(time &= 1.0 / fps){
//帧序列切换&&&&&&
nowFram++;
//限制帧清空&&&&&&
//超过帧动画总数从第0帧开始&&&&&&
if(nowFram &= tex.Length)&&&&&&
nowFram = 0;&&&&&&
}&&&&&&&&}
//将对应的贴图赋予主角对象,强制将资源文件转换成贴图&&&&&&&&hero.renderer.material.mainTexture = (Texture)tex[nowFram];
代码中我们使用 Resources.LoadAll(&#8220;down&#8221;);来加载主角动画资源,这里将主角一组4帧的行走动画放在项目资源视图中 Resources文件夹中的down文件夹内。值得注意的是,使用Resources来加载资源就必须将资源放在Resources文件夹中,否则提示无法找到喔。在书中我以将人物四宫格行走动画加入在其中,因为这里只是一个是示例,所以我只加载了向下行走的4帧动画。我们看看资源在项目资源视图中的保存结构。
还有一个比较重要的地方就是要修改材质的shder类型,因为默认的材质是Diffuse,它是不支持透明的。如果材质不支持透明。主角的背景将会是白色。如下图所示,这里选择Transparent/Diffuse。保存为Transparent家族中的材质都是支持透明的。
最后2D游戏效果图映入我们眼帘了哦。按键W、S、A、D控制摄像机移动,按键J、K、I、L、控制主角移动。
总结一下这篇文章,本文我们在多个Plane对象身上贴上材质资源,再让摄像机直直的照射着它。实现2D游戏的基本原理,本文没有涉及到Unity3D的物理引擎,不要紧在下章中我将向大家介绍一下Unity3D中的刚体组件与角色控制器组件如何来实现模型的物理效果,包括物理引擎与3D或2D游戏的结合。另外大家一定要期待我的新书喔,哇咔咔~嘿嘿。
本文固定链接:
转载请注明:
MOMO与MO嫂提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!}

我要回帖

更多关于 2d字幕转3d字幕 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信