游戏引擎 Unity 的入门易精通难体现在哪?为什么?

04月212014年

【王楠的回答(37票)】:

为什么入门简单,看一下官网的文档和视频教程就知道了,看完几段视频和例子就能让初学者做出能玩的东西,其他同类商业引擎都做不到。物体+组件的结构,所见即所得的编辑方式,都把初学者的门槛降到了最低。

再说说难精通的体现。其实任何可以拿来做高大上酷炫屌游戏的商业引擎都是难精通的,这个由引擎的功能深度和泛用性决定。一个集成了无数商业中间件的引擎,包括动画系统、GUI、光照系统、寻路、物理等各个部分,任何一部分单独拿出来都需要用户用心掌握。从这个角度来说Unity和Unreal基本是差不多的。

那么Unity特有的坑有哪些呢?

1. 脚本执行顺序:MonoBehavior是Unity组件系统的核心,离开这个类所有易上手和高效开发的特性都无法施展。但多个组件脚本的执行顺序控制始终是令人头痛的问题。不了解这一点的用户很容易陷入各种隐藏bug的泥沼。

2. 组件式功能结构给每个人更大的控制权力,但无法很好的区分团队不同成员的责任。相比Unreal把编程分为C++,UnrealScript和Kismet三层的做法,Unity让每个开发者都能看到脚本源码并在需要时进行修改。对于独狼开发者来说非常方便,但如果一个游戏逻辑同时可能受到脚本程序、prefab参数配置和场景引用关联三方制约,维护起来就非常的乱,出了问题也很难第一时间分清责任。

3. 内存分配和垃圾回收造成的效率问题初学者很难了解。Unity的一个重要特征就是为了让整个引擎有更广的受众,故意隐藏了很多复杂的使用方法。比如说全自动的垃圾回收,就是为了让不懂内存分配的用户也能无障碍使用。但很快进阶一点的用户就会发现大量运行时垃圾回收造成的拖慢,以至于成为一个入门必经的陷阱。如果能在官方文档里告诉用户哪些操作会分配内存,情况会改善许多。

4. 功能迭代推新迅速,造成大量不成熟不完善的工作流程。这一点很难说是缺点,毕竟能第一时间用到酷炫的新功能对很多用户来说是求之不得的,当然如果你是商业项目的技术负责人就要小心了。一般来说,官方推出的功能至少要在一年后稳定性和适用性才会超过Asset Store上的同类第三方插件。

总的说来,由于优秀的可扩展性,上述这些问题都不致命。总有人在制作优秀的工具来弥补这个引擎的各种不足。而配合其天下无敌的易用性,unity整体的技术方向是非常成功的。

【邓凯的回答(13票)】:

Unity入门易:

1、渲染对象上挂一个脚本组件就可以驱动该对象的逻辑,基于MonoBehaviour的脚本一上来就把初始化(Awake、Start),更新(Update、FixedUpdate)的接口留好了,初学者完全不用考虑程序框架一类的问题,直接填空就行。很像做早期flash游戏的感觉。

2、编辑器非常强大,所见即所得的编辑方式,可以随时暂停、单帧执行游戏逻辑,提供场景和游戏多个窗口实时调试,观察效果。脚本组件面板上可以实时看到所有变量的当前值,这对于调试游戏逻辑非常方便。

3、3D引擎功能很完善,与我们自研了5,6年的3D引擎相比,还是远远甩我们一大截,除了支持前向和后向的多种渲染管线,各种后渲染效果,还内置基于Beast的LightMap烘焙、基于Umbra的遮挡剔除这些商业中间件,要知道单采购这些中间件就得好几十万RMB,因此就算是个3D新手,要做个炫酷的3D效果也不是很难。虽然在渲染效果上可能比不上Unreal,Cry,但是U3D这玩意在中国,就算是免费的了,再说用U3D基本也是要发移动平台,目前的3D效果已经很够用。

4、游戏其他方面的组件也很丰富,有基于PhyX的物理系统,你要做点什么疯狂小鸟、割绳子之类的游戏,真是很容易。另外还有基于NavMesh的导航系统、音乐音效系统(做音效的是FMOD的前开发者)等。

5、良好的开发者社区生态系统。Unity最NB的就是建了个Asset Store,全世界的UNITY开发者在这里卖自己做的各种代码、组件、美术资源,分享经验。因此,学习成本大大降低。

6、一键发布到各种平台,包括IOS、Andriod、WP、网页、Windows、Mac等,如果不是要接入其他平台相关的库(如内购等),几乎完全不用学习平台相关的编程知识(Object-C, Java等)

7、作为证明Unity入门易的一个例子,本人在刚开始学Unity时,用了一个半月的业余时间,做了个推币小游戏,放在AppStore上,一个月基本上能收个几千块钱。给个链接吧,不算广告啊,只是说明下1个半月业余时间用Unity能做个什么样的出来:iTunes 的 App Store 中的“小丑马戏团”

--------------------------------------------------------------------------------------------------------------------------------

Unity精通难:

1、基于MonoBehaviour的脚本,用得太顺手会有有很大的架构风险,你会情不自禁的A组件引用B组件,B组件又引用A组件.....项目一大写成一团乱麻。当然用其他引擎,其他语言也有这问题,但UNITY的一些特性必须用MonoBehaviour类来使用,所以要设计一个健壮的MVC架构需要顶住很多诱惑,绕一些弯。

2、基于MonoBehaviour的脚本,组件的初始化顺序无法明确,这个坑也有回答提到了。

3、底层代码不开源,尤其是Asset Store上卖的东西那帮开发者也习惯弄个dll封装起来,因此,一些底层修改需求没法改,有时候很头疼。

4、C#的GC问题,这个不能说是Unity的错,C/C++的开发者会在长期的工作中变得对内存敏感,而C#开发者会弱得多,但游戏恰巧又是个内存敏感的应用程序。因此,开发者需要对C#的内存分配时刻非常敏感,否则就会出现频繁GC导致的顿卡现象。这里尤其要注意在每帧更新时的小内存分配。这方面要善用UNITY自带的内存和性能分析工具。

5、Unity3D毕竟是个3D引擎,3D图形学知识毕竟门槛很高,要深入的做一个项目,需要对3D知识了解得很深,因此,在开发一些大型项目时,新手往往对于3D的各种需求和问题,如果Unity官方没有,或者Asset Store里找不到,就感到棘手。

6、最大的坑!IOS发布时遇到跟AOT编译有关的运行时异常。简单说就是Unity采用mono对C#进行跨平台编译,但在iOS平台中,Mono是以Full AOT模式运行的,无法使用JIT引擎,于是引发了这个异常。所以经常出现的情况是在PC和Andriod上游戏都跑得很好,但在iOS平台会在运行时当掉!具体限制请参照:http://docs.xamarin.com/guides/ios/advanced_topics/limitations/#.NET.c2.a0API.c2.a0Limitations

7、作为证明Unity精通难的例子,我司跨时代炫酷国际大作秒杀Appstore前20的Unity项目,做了大概8个月了吧,估计要出来还得小1年....

【知乎用户的回答(2票)】:

入门易是因为它的编程脚本话(非常对象化),这个是核心。然后在这个核心之外,价格因素吸引了很多的开发者和公司。加上它的插件化技术形成了很好的生态环境,因此学习资料比其他引擎多了不止很多两个字就能说的清。这些都形成了入门的门槛很低。

精通难是因为3D本身,而不是unity这个工具。

时间: 2024-10-08 18:28:57

游戏引擎 Unity 的入门易精通难体现在哪?为什么?的相关文章

认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多,但是大多数都需要花费一些资金才可以正式使用.而我们这里要讲解的AndEngine则是一个免费并且开源的2D游戏引擎.对于它的使用,读者不仅不必担心授权问题,而且还可以获得AndEngine源码,在需要的时候对其进行修改.本章就来讲解如何在自己的计算机上搭建一个自己AndEngine开发平台.本文选

Android 2D游戏引擎AndEngine快速入门教程

Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引擎开发2D游戏. 试读下载地址:http://pan.baidu.com/s/1c0CODiw 前言 作为一款免费的手机操作系统,Android系统占据大半的手机系统份额.在Android众多的应用类型中,游戏应用由其娱乐性成为最大的分支.由于手机的操控特点,2D游戏成为Android游戏的主流,如

独立开发游戏越来越容易:Unity 发布旗下的最新游戏引擎 Unity 5,依然有免费版(转)

独立开发者开发游戏正变得越来越容易,因为在游戏设计中很多吃力不讨好的工作可以直接采用像 Epic Games 或 Unity Technologies 这样的游戏引擎来解决.而这几天,游戏引擎商们先后宣布,旗下产品将以更廉价甚至是免费的方式提供给游戏开发者们,开发游戏的门槛又进一步降低了. 先是 Epic Games 在周一通过官方博客宣布旗下 Unreal Engine 4 (虚幻引擎 4)即日起免费提供给 所有开发者使用.只有当开发者利用 Unreal Engine 4 所制作的游戏每个季度

【游戏引擎架构】入门(一)

游戏引擎的组成:运行时组件+工具套件. 运行时组件: 硬件.驱动.操作系统. 第三方软件开发包(SDK)和中间件:数据结构及算法(STL.STLport.Boost.Loki).图形(OpenGL.DirectX).碰撞和物理(PhysX.Havok.ODE).角色动画.人工智能.生物力学角色模型). 平台独立层:包装了常用标准C语言库.操作系统调用.基础API 核心系统:断言.内存管理(自定义内存分配系统).数学库.自定义数据结构及算法.异步文件I/O.对象句柄/唯一标识符.模块启动及终止.字

类似Unity的全新游戏引擎Godot

http://www.godotengine.org/wp/ Godot是一个全新开发的游戏引擎,其功能集类似知名的跨平台游戏引擎Unity,可用于开发PC.主机.移动和Web游戏.开发者声称引 擎的2D和动画支持要强于Unity,表示在功能和特性上没有其它开源游戏引擎能相媲美.Godot引擎内置了类似Unity的编辑器,GUI工具 包,2D/3D物理支持,支持OpenGL ES 2.0 功能集的3D渲染器,易于学习的语言和API,支持用ASM.js或Google Native Client输出

【笨木头Unity】入门之旅010(完结):Demo之四处找死(五)_UI

UI是游戏里必不可少的元素,在Unity里添加UI是比较轻松的事情,但要玩好它,可就不那么轻松了. 没关系,先入门. 笨木头花心贡献,啥?花心?不,是用心. 转载请注明,原文地址:http://www.benmutou.com/archives/2196 文章来源:笨木头与游戏开发 1.创建UI 很早之前也介绍过怎么创建UI,这里简单再回顾一下. 在Hierarchy窗口中点击右键,依次选择[UI]-[Text]. 我们会看到窗口中,多了一个Canvas和Text: 2.让UI跟随物体移动 由于

Android 2D游戏引擎AndEngine配置环境

Android 2D游戏引擎AndEngine配置环境 1.2  配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和编译器等的支持.所以在开AndEngine的游戏也需要这些东西,而我们需要的环境都有那些呢?本节内容就将解密AndEngine环境的配置本文选自Android 2D游戏引擎AndEngine快速入门教程. 1.2.1  环境要求 编写AndEngine需要一定的编程环境才可以完成编写.而为了调试,需

游戏引擎架构 PDF下载

网盘下载地址:游戏引擎架构 PDF下载 – 易分享电子书PDF资源网 作者: [美] Jason Gregory (杰森.格雷戈瑞) 出版社: 电子工业出版社 原作名: Game Engine Architecture 译者: 叶劲峰 出版年: 2014-1 页数: 800 定价: 128.00元 装帧: 平装 内容简介 · · · · · · <游戏引擎架构>同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨.本书讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗.虽

Unreal SDK 游戏开发从入门到精通

(UnrealScript语法.UI Scene界面.UDK独立开发游戏)+视频下载~~~ 1.1.课程的背景 UDK(the Unreal Development Kit 虚幻引擎开发工具包)是Epic公司在2010年宣布对外发布著名引擎虚幻动作第三代(Unreal Engine 3 虚幻引擎3)引擎的免费版本. UDK可以用于家用游戏主机.个人电脑.苹果系统等多个平台,  并且据说Epic正计划移植到网页游戏平台. 据2013年11月份的统计报告, 目前UDK的使用人数已超过80万.  1.