`

试读《Unity3D游戏开发》有感

 
阅读更多

试读了一下《Unity3D游戏开发》这本树,感觉书写的很详尽,甚至还介绍了如何注册(我以前自己注册时在这上面可没少花功夫),非常适合初学者快速的掌握Unity3D。


Unity3D提供了一套强大的游戏引擎,其最大的优势是跨多平台,特别是现在很火的移动平台iOS和Android,这是很多优秀的游戏引擎所不具备的。除此之外,它还提供了一个很强大的可视化开发编辑环境,很多游戏功能的实现都不需要再写代码了,开发起游戏来非常方便。


书中第三章介绍了GUI类和GUILayout的区别,其中提到:用GUI进行控件不能自适应调整,而GUILayout更加灵活。但是从我已有的一些Unity3D编程经验,我稍有不同的看法,如果仅从一个相对简单用户界面小例子来看,的确如此,但是如果进行一个复杂的界面,情况可能未必如此。当界面存在类似装备清单之类的较复杂的布局时,需要使用GUILayout的BeginArea()和EndArea()函数来进行布局的嵌套,比如:

 

BeginArea(new Rect(x, y, w, h)...);
...
BeginVertical(new Rect(x, y, w, h));
BeginArea(new Rect(x, y, w, h)...);
...
EndArea();
...
EndVertical();
EndArea();
 

 

由于GUILayout是自动调整的,一个复杂交叉的布局常会出现无法预料的偏差,但是你又难于找到问题的所在。而且,BeginArea()本身也是需要传入Rect参数进行绝对定位的,这仍然需要你去针对不同分辨率去计算所处的位置,因此并未完全摆脱GUI类的模式。


而GUI看似不灵活,但是其绝对定位方式非常类似于HTML网页中的定位方式,直观而又可靠。其实只要掌握要点,用GUI.BeginGroup()按照固定坐标把整个界面分成几大块,然后在各块中分别进行局部的布局,使用起来也挺便捷的。至于控件的宽度和高度,完全可以按照纹理贴图Texture的宽度和高度属性来设置,你就可以随意修改图片的大小,也不会出现大小不一致的问题了。而且,GUILayout对于界面上存在大量Margin的布局是比较吃力的,你还要去考虑如何实现这些Margin,而GUI就只需要设定一个或几个偏移值就行了。因此,从实用角度来将,可能是GUI和GUILayout两种模式混合使用会比较实际。当然,仁者见仁,智者见智,等你用到了也许会有不同看法。



第四章介绍了Unity所支持的三种脚本语言,虽然我没学过Boo,但是Python语言的表达能力是很强的,既然Boo与之相似,那么相信应该是不错的选择,只是这门语言应该会的人很少吧,不易被接受。JavaScript也是非常不错的脚本语言,虽然由于历史原因有些地方设计的不好,但是它有着庞大的用户群,而且其语言的表达也是比较强的,因此选它应该是没错的。至于C#,应该在性能上会有些优势,但是其语法和实现太过于精细(还记得Int16, Int32和Int64吗?),使用起来较繁琐(我已厌倦了不停的转型,你呢?),其实并不太适合作为游戏脚本。游戏性能主要还是由引擎本身以及所实现的游戏逻辑决定的,而不是游戏脚本自身的性能,所以,我觉得选择JavaScript没错的!


Unity脚本的生命周期,是由实现一些既定的函数来使其完整的,这些函数分别代表了生命周期的不同阶段和作用。这些函数看上去像是“回调”函数,但是其实你并没有在起初“调用”过什么。它更多的是符合设计模式中的“策略模式”,每一段脚本都是一个有着各自不同的“策略”的执行体。Start()和OnDestroy()在脚本创建和销毁时执行一次。而OnGUI(), Update(), FixedUpdate()函数是游戏主循环,它们以各自的方式不停的循环执行,分别负责处理游戏每一帧的不同内容的刷新。


总之,Unity3D是一款非常优秀的商业游戏引擎,它的出现给我们带来的新的视界,推动了游戏软件的开发向着越来越高效率的方向前进。




分享到:
评论

相关推荐

    unity3d手机游戏开发(金玺曾)part2

    unity3d手机游戏开发(金玺曾),PDF共392页,完整版本,非试读版本。分卷是csdn限制,每个分卷1个积分,一共需要2个积分。

    Unity3D游戏开发(第2版)【试读】

    资源名称:Unity 3D游戏开发(第2版)【试读】资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    unity3d手机游戏开发(金玺曾)part1

    unity3d手机游戏开发(金玺曾),PDF共392页,完整版本,非试读版本。分卷是csdn限制,每个分卷1个积分,一共需要2个积分。

    Unity游戏设计与实现:南梦宫一线程序员的开发实例-试读

    本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过10个不同类型的游戏实例,展示了真正的游戏设计和实现过程。本书的重点并不在于讲解Unity的各种功能细节,而在于核心玩法的设计...

    Unity+5实战+使用C#和Unity开发多平台游戏+,Joseph+Hocking著+,P298+,2016.05+sample

    《Unity+5实战+使用C#和Unity开发多平台游戏》是Joseph Hocking撰写的一本专为游戏开发者设计的专业指南,旨在帮助读者掌握使用Unity引擎和C#编程语言开发跨平台游戏的技术。这本书在2016年5月发布,其中包含的样章...

    手机游戏开发全书试读版本

    ### 手机游戏开发全书试读版知识点概览 #### 一、手机游戏行业发展背景与趋势 - **行业背景**:中国手机游戏产业虽然起步较晚,但在短时间内经历了快速发展阶段,包括爆发式增长、行业整合等多个阶段。据加特纳...

    手机游戏开发全书——部分章节试读.pdf

    ### 手机游戏开发全书——关键知识点精析 #### 1. 手机游戏开发行业背景 手机游戏开发行业自21世纪初以来经历了一段快速发展期,尤其是在中国,这个行业的崛起仅用了四年时间便达到了国际风险投资排名第四的位置。...

    PlayMaker动作速查手册试读大学霸.zip

    《PlayMaker动作速查手册试读大学霸》是针对Unity3D游戏开发工具中的PlayMaker扩展模块的一个详细参考资料。PlayMaker是一款强大的可视化状态机工具,它允许开发者通过图形化界面来构建复杂的游戏逻辑,而无需深入...

    HTML5 Canvas核心技术—图形、动画与游戏开发【扫描版PDF(71M)+试读章节+源码】

    4. **碰撞检测**:在游戏开发中,检测物体间碰撞是关键,书中可能介绍了一些基本的检测算法。 游戏开发方面,可能会涉及: 1. **游戏循环**:游戏的核心是游戏循环,如主循环和渲染循环,保证游戏的实时性。 2. **...

    《HTML5 Canvas 游戏开发实战》前三章试读

     本书在介绍每个游戏开发的过程时,都会包括游戏分析、开发过程、代码解析和小结等相关内容,以帮助读者了解每种类型游戏开发的详细步骤,让读者彻底掌握各种类型游戏的开发思想。最后,还通过数据对比分析,指导...

    游戏设计梦工厂试读样章

    根据提供的文件信息,内容涉及到游戏设计领域的一本重要著作《游戏设计梦工厂试读样章》,并且提到了游戏设计大师陈星汉及其恩师Tracy Fullerton的作品,以及相关的版权信息和出版社信息。以下是对这些信息的详细...

    【试读】游戏设计的236个技巧

    然而,3D游戏设计的复杂程度远高于2D游戏设计,这不仅仅是因为3D游戏需要更加复杂的图形渲染技术,还因为在3D空间中进行角色和环境设计时,对设计师的空间想象力提出了更高要求。在设计过程中,开发者需要考虑角色、...

    Android手机游戏开发有关资料

    "Android游戏基础.pdf"可能专注于Android平台上游戏开发的具体技术,如Android游戏框架的选择(如libGDX、Unity、Cocos2d-x等)、游戏编程原理、多线程处理、触摸事件处理、游戏状态管理等。这些内容将帮助开发者...

    【试读】高效团队开发:工具与方法1

    高效团队开发:工具与方法 本书《高效团队开发:工具与方法》旨在解决团队开发中面临的问题,提供了一系列工具和方法,帮助团队成员实现高效的开发、测试、运维和项目管理。本书涵盖了版本管理系统、缺陷管理系统、...

    游戏设计艺术(第2版)试读样章

    首先,标题《游戏设计艺术(第2版)试读样章》表明,这本书是游戏设计领域的权威作品,并且是第二版的试读章节。从标题可以推断,这本书可能包含对游戏设计过程的全面覆盖,包括理论和实践。同时,“试读样章”则...

    TMS320F28335DSP原理及开发编程试读

    TMS320F28335DSP原理及开发编程试读,初学者值得一看

    Google android SDK开发范例大全试读章节

    《Google Android SDK开发范例大全》是一本专为Android开发者设计的指南,旨在提供全面的SDK使用示例和开发技巧。这本书的试读章节可能是为了吸引潜在读者,展示书中涵盖的关键概念和技术。作为一本大陆新出版的专业...

Global site tag (gtag.js) - Google Analytics