Home | Back to Courses
从零开始的 Unity 魔法学堂

Partner: Udemy
Affiliate Name:
Area:
Description: 制作这套教程的初衷,是想以一种有趣而独特的形式(或者说一套以比喻构成的外壳),来代替常规编程学习中令新手们困惑的专业概念和名词,以达到降低学习难度、提高学习兴趣的目的。很高兴课程得到了很多朋友的肯定和支持,但在制作、发布的过程中,也有一些小伙伴表示,这套以魔法概念构成的比喻,反而给自己的学习带来了一些困扰(这样的困扰主要集中在有一些基础的小伙伴身上),如果你在学习过程中也产生了这样的困惑,非常抱歉,我很希望可以帮助大家,你可以加入课程的交流群中随时提问,我会一一解答你的困惑。出于提高学习效率的目的(这也是课程制作的初衷),我在课程进度过半时,补充了这篇序言,这篇文章不会涉及任何魔法比喻,而是以通俗的语言和例子,讲解编程的基本思想,乃至Unity开发的一些思想,希望能消除理解障碍,帮助你更好地接受课程的概念,再次对产生困惑的朋友们表示歉意。程序是什么?程序是对数据进行加工处理的一组操作,计算机专业的同学可能更熟悉这种表述:程序 = 算法 + 数据结构,很凝练,但可能不太好懂。就拿计算器软件来说,“数据”便是用户输入的数字,以及用户选择的加减乘除等运算符,“加工处理”则是用户按下等于号后,程序内根据数字、运算符,进行的一系列计算,最终计算得到的结果会显示给用户。这个例子比较极端,因为计算器就是做数据处理的软件,现在来看看你可能更熟悉的聊天软件,“数据”除了用户输入的文本内容,还有存储在设备上的通讯录(当然就通讯录模块来说,联系人也是由用户输入的数据),“加工处理”则是按下发送按钮后,联系人和内容被打包发送给服务器的一系列操作。再进一步,对于一个角色扮演游戏来说,角色的信息、用户的操作、场景的物件,都是“数据”,而角色和场景中其他角色的交互、角色的成长、装备的获取和升级等等数据的变化,则都属于数据的“加工处理”,只是对于游戏这种大规模的程序来说,数据和加工要远远比计算器复杂,因此要将数据进行分类整理,组成比单个数字更结构化的数据,这也是“数据结构”和“面向对象”解决的问题。稍微够点规模的程序,必然要拆分成多个模块,各司其职,比如聊天软件的数据收发模块,通讯录模块,文本编辑界面模块等等。这样做有很多好处,比如在开发各个模块时,只需要考虑当前模块如何将接收到的数据处理成符合要求的结果,而不用考虑别的模块怎么运作,当一个模块出现BUG时,也只需要专心修复这个模块,另外这些模块也可以从程序中提取出来,放进别的有相同需求的程序里,就像搭积木一样,比如聊天软件的文本编辑模块也可以放在备忘录软件里。游戏引擎是什么?如果把各种游戏比作一个个积木搭建的大厦,想想看,其实很多游戏的“积木”都是一样或者非常类似的,比如模型、贴图渲染,音频播放,物理系统等等,游戏开发者当然没必要每次开发新游戏时,都把这些模块重新开发一遍,就像造汽车没必要重新造轮胎,直接采购现成的就好啦(这也是程序员常说的“造轮子”的出处)。游戏引擎就是一个样式齐全、整理有序的积木套装,除了现成的积木块儿,还提供了扳手锤子锯子螺丝刀,供你DIY积木块。严谨一些说,游戏引擎提供了各种常用模块的代码库,可以让你在自己的代码中调用,此外还提供了一套人性化的操作界面,让你可以靠点击鼠标的方式完成很多传统软件行业靠写代码才能完成的工作,这也是为什么一些简单的游戏可以不写代码就做出来。根据游戏引擎的设计,一个游戏被分成一个个场景,每个场景又包含很多物体,不同物体上挂载着不同的组件,而组件则可以执行不同的功能。游戏开发者可以使用引擎提供的组件,也可以自己写代码,并作为组件挂载在物体上。面向对象是什么?模块既然是各司其职的,那就可能会存储数据,并提供一系列与当前模块和数据相关的操作。但模块这个词可能会让你联想到手表里的零件:各有各的功能,各不相同,不过实际情况稍有不同,虽然很多模块确实是各不相同的,但也有很多模块是可重复的。还是以角色扮演游戏为例,如果程序中有一个“角色模块”,那么这个模块应当存储着角色的姓名、等级、人物模型、装备列表等等信息,并提供诸如“走路”、“攻击”、“死亡”之类的操作,玩家、怪物、NPC都应当具备这样的模块,但你不必为每个角色都写一套角色模块,只需写一个模版,然后用模版来创建一个个实际的模块即可。
Category: IT & Software > Other IT & Software > Unity
Partner ID:
Price: 29.99
Commission:
Source: Impact
Go to Course