发布时间:2023-11-27 07:28:38 浏览量:136次
文/狂野之心
因为Unity5免费策略推出,2D功能也大大增强,于是转投Unity。在朋友鼓励下,推出Unity教程,希望能帮助那些想提高2D游戏开发效率的朋友们。需要注意的是,此系列教程都会使用5.2.0版本(目前最新5.2.2)进行开发。
那么我们就开始吧!我会做一些很常见的比较简单的小游戏,帮助大家从零开始,首先来做一个跑酷小游戏。
初识Unity2D
创建新项目,名称我用的是JustRun。一定注意,项目类型有3D和2D之分,选择2D即可。点击创建,就进入了Unity主界面。
这四个面板是最常用的,我只进行大致的解释,后面用得多了,大家自然会慢慢理解。面板1是游戏对象关系面板,直观地表示各个游戏对象之间的父子关系。面板2是属性面板,用来展示所选对象的各个组件和属性。面板3是场景编辑器,大量的场景编辑都需要在里面完成。面板4是工程面板,用来查看所有的资源和脚本。当然,如果大家的面板结构和我不一样,可以自行对照,也可以拖拽标签栏移动各个面板到合适的位置。
我们都知道,很多游戏引擎或者说框架,都是纯代码来开发,游戏长什么样,都是运行起来才知道。Unity是所见即所得开发,是我个人偏爱的一种开发形式,非常的直观。
光说不练假把式,在电脑里随便找一张图片,比如我这张。
把图片从文件夹里拖拽到工程面板,注意要在Assets文件夹中哦~然后拖拽到左侧的关系面板。这时,屏幕正中央就会出现一只小萌物了。点击编辑器顶栏的播放按钮,游戏就会执行起来了,再次点击退出播放模式(细心的朋友会发现,进入播放模式,Scene选项卡会切换到Game选项卡)。
添加地面
Command+s或者Ctrl+s,我们保存当前场景到Assets文件夹中,起名为Main。
由于目前我还不知道如何在Unity中创建二维形状,所以你们只能用PS做一个纯色地面了,而我要再次使用一个酷炫的素材,哈哈哈哈。
老套路,将素材添加到场景中,等等!主角被挡住了?
我们在关系面板中,选中地面,然后看属性面板,Transform面板是一个游戏对象的各种体位(你没看错……)属性,可以设置三个维度的坐标、角度和缩放。经过我的火眼金睛观察,设置地面的Position里的Y值为-1.3刚刚好。
第一个脚本
那么该让主角动起来了,It's time to go! 这一切必须借助脚本来完成,不过很可惜第一个脚本不是Helloworld。我先谈谈脚本语言的选择:作为一个曾经的JS程序员,我很庆幸自己选择了C#进行开发,虽然我当时对C#一无所知。根据我自己的使用经验,JS是一种弱类型语言,游戏客户端开发需要大量使用字典、数组、链表等等,明确知道一个链表里存的是什么鬼,非常的必要。如今我C#也使用的很娴熟了,我都不敢想象如果选择了JS现在的处境会怎么样,代码复杂度高了以后,JS非常的难以维护。
在Project面板中,右键Create,选C# Script,命名为ScrollGround。这个脚本我们挂在地面对象上,让地面向后滚,这样主角就被迫向前跑了,哈哈哈哈。
双击脚本,你将打开一个MonoDevelop编辑器,public class后面的类名如果不是ScrollGround,就改成这个名字。回到Unity编辑器,将脚本拖拽到地面对象的属性面板,如图:
然后我们回到MonoDevelop编辑器,这里是用来编写脚本的地方。这个脚本将决定地面对象的一切行为,全权控制。Start函数是这个对象第一次出现在场景中时会调用的函数,做一些初始化功能,Update函数每一帧都会执行一次,英文注释里都有解释,MonoBehavior是Unity的游戏对象基础类,继承这个才可以用这些函数。
第一行代码
我们来一点点尝试脚本的编写吧,即使不会C#也没关系,对着教程,自己多练习,慢慢就会熟悉的。
Update函数中,加入下面这一行代码:
transform.position -= new Vector3(Time.deltaTime, 0, 0);
我一点点来解释:transform对应的是(挂载该脚本的游戏对象的)属性面板里的Transform栏,所以在脚本中修改position就相当于在面板里修改position。后面的这个是一个三维数组对象,Time.deltaTime是上一帧到这一帧的间隔时间,非常小的一个数值。在坐标值里减去一个很小的x轴位移,那么这个对象会每一帧向左移动一点点。回到Unity,播放一下游戏,果然如此!大人真乃神人也!
光滚动还不够,地面好像有点短。没关系,我们进入Unity编辑器,从project面板中再拖拽一个地面对象到关系面板中,并设置其x坐标,挂载ScrollGround脚本,最终如下:
这时执行游戏,就会发现地面变长了。但是跑着跑着,还是不够用,怎么办呢?我们去脚本里重置一下前一块地皮就可以了。
进入MonoDevelop,在刚才的那一行代码下面添加下列代码:
if(transform.position.x这里的11.36是刚才我们在编辑器中看到的那个横坐标数值,当地面移动到左侧这个距离的时候,将其位置重置到最右侧,这样就可以无限循环了。C#中所有的浮点数,都必须带上f后缀。现在我们去场景中播放一下,虽然还有点瑕疵,但是基本实现了功能了。大家可以通过调整地面长度或者增加第三块地面,来使效果更加完美,我这里就不赘述了。
第一个动画
回到Unity编辑器,现在我们先导入另外几张图片,然后选中所有的素材,一共是6张跑步动画帧,拖拽到关系面板中主角对象身上,然后主角对象上就创建出了一个Animator组件。如图:
这个组件也会放在素材所在的文件夹里,看project面板中会多出一个带播放按钮的对象和一个流程图一样的对象。左边的是刚才形成的动画片段,右边的是主角对象的动画控制器。动画分为动画片段和控制器两部分,片段挂在控制器中,由控制器决定播放哪一段,这两部分是分开的。如果操作无误,下面播放游戏,就能看到主角跑起来啦~!哦妹子英!还是很简单的吧。
下一步我会继续教大家如何做出跳跃的效果。敬请期待!
热门资讯
探讨游戏引擎的文章,介绍了10款游戏引擎及其代表作品,涵盖了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戏设计领域和数字艺术教育的重要性,欢迎点击咨询报名。
游戏中玩家将面临武侠人生的挣扎抉择,战或降?杀或放?每个抉定都将触发更多爱恨纠葛的精彩奇遇。《天命奇御》具有多线剧情多结局,不限主线发展,高自由...
3. B站视频剪辑软件「必剪」:免费、炫酷特效,小白必备工具
B站视频剪辑软件「必剪」,完全免费、一键制作炫酷特效,适合新手小白。快来试试!
4. 手机游戏如何开发(如何制作传奇手游,都需要准备些什么?)
如何制作传奇手游,都需要准备些什么?提到传奇手游相信大家都不陌生,他是许多80、90后的回忆;从起初的端游到现在的手游,说明时代在进步游戏在更新,更趋于方便化移动化。而如果我们想要制作一款传奇手游的
5. 3D动画软件你知道几个?3ds Max、Blender、Maya、Houdini大比拼
当提到3D动画软件或动画工具时,指的是数字内容创建工具。它是用于造型、建模以及绘制3D美术动画的软件程序。但是,在3D动画软件中还包含了其他类型的...
三昧动漫对于著名ARPG游戏《巫师》系列,最近CD Projekt 的高层回应并不会推出《巫师4》。因为《巫师》系列在策划的时候一直定位在“三部曲”的故事框架,所以在游戏的出品上不可能出现《巫师4》
一、声音优化在绝地求生游戏中能够提前听到脚步声往往能提前取得战机,主要有两种方法:1、利用SoundLock软件,软件的功能主要是限制最大音量。百度搜索...
UI设计师、动画设计师、特效设计师每一个职位的功能和负责的方面都不同。所以,3D美术这方面需要大量的人才。但是要成为一个3D游戏建模师,也不是那么...
众所周知,虚幻引擎5(下面简称UE5)特别占用存储空间,仅一个版本安装好的文件就有60G,这还不包括我们在使用时保存的工程文件和随之产生的缓存文件。而...
想让你的3D打印模型更坚固?不妨尝试一下Cura参数设置和设计技巧,让你轻松掌握!
最新文章