unity2D横版游戏教程-1 让人物动起来

在看完了麦扣老师的小狐狸的视频后,为了巩固练习,我另外找一个素材包来练手,顺便写成一个教程让自己更加熟练,同时当自己遗忘时可以回头查阅。另外,这个教程我写的非常详细,萌新也可以学习。有什么不对的地方或者有疑问的地方,欢迎指正和咨询。

首先导入素材

然后我们可以先浏览一下素材包,一个是Assets,一个是测试场景demo,我们主要看Asset里面有什么,background里面是我们的背景图片,Items是各种各样的物品,Main Character存放的就是我们的角色,这里有四个人物,我们用第一个人物就行,Other是一些调色用的东西,Terrain就是我们的地形相关的素材,Traps里面有很多的陷阱,用来增加游戏性。素材包就介绍到这里,其实我们这一节的主要目的还是让角色动起来,所以用到的东西不是很多,一个是角色,还是就是地形素材。

我们先把角色的所有图片的Pixels Per Unit(每单位像素)都改成32,因为素材是32像素*32像素的

 接着创建一个空组件(Hierarchy栏右键->Create Empty)命名为player,右边的transform记得reset(重置)一下

 在player里面添加一个组件叫sprite Renderer(精灵渲染器),这个就是用来添加我们角色的模型

 把角色的的idle的第一帧的姿势拖到刚才的sprite Render里面的Sprite

 这样我们就创建我们的角色,并且可以再Scene栏中看到我们的角色了

 然后我们把地图简单的设置一下

在左边的hierachy视图那里创建一个tilemap,tilemap是unity的一个插件,可以很方便的让我们进行2D游戏地编工作

 命名为platforms

 接着我们从Window->2D->Tile Palette打开我们的tilemap的编辑界面

 Creat New Palette创建一个新的面板,命名为Map,位置可以自己随便放,但是为了后期更好的管理我创建了一个文件夹专门的放这类的东西,在project栏右键creat就可以创建新的Folder,我们这里可以创建一个Map文件夹存放我们的tilemap

在素材包的Terrain里面有两个png图片,这两个就是我们地编的基础素材了,第一个好像没有切分,所以我们用第二个,记得把在右边Inspector那里把像素改成16

 然后直接把这个图片拖到Tile Palette,位置选择我们创建的Map文件夹

 回到Hierarchy,点击platforms,这时候就可以编辑我们的地形了,回到Tile Palette,我们先添加一个简单的平台,直接选中Tile Palette里面的方块就直接直接拖到Scene里面

 这样我们的第一个平台就做好了

我们还需要给platforms添加一个碰撞器

我们点击platforms,在右边点击Add Component(添加组件)添加一个Collider组件,搜索tilemap collider 2D,选择就可以了。

 这样我们就给我们的地形添加了一个碰撞体,这个collider可以用来检测物品之间是否发生碰撞,也可以作为触发器使用。我们这里可以简单的认为加了collider之后地形就有了实体,人物不会直接穿过去,并且还可以响应对应的碰撞事件,比如人物碰到地形以后会触发一个事件,这个事件可以用来写人物跳跃的动画。

既然地形可以加collider,那么我们的人物也可以加collider,我们给人物也添加一个collider,我们给人物添加的是一个圆形的碰撞器,还有一个盒体碰撞器叫Box Collider 2D,我们不用这个,考虑到素材没有蹲下的动作而且盒体碰撞体容易和地形发生卡顿。

 然后我们点击Edit Collider对这个圆形碰撞器进行一个编辑,将它的大小调整到一个合适的位置

 

 我们点击运行之后就可以发现人物已经站立在了平台上

然后我们就需要将我们的人物动起来,角色要动起来肯定要有一个力,并且还要响应我们的按键的触发,这个力就是我们的Rigidbody 2D,这个组件可以给我们的角色添加x方向和y方向的力,这样就能够让角色动起来了,所以我们给角色添加这个组件

 但是记得在constraints(约束)那里锁定z轴,不要让z轴动起来,因为z轴动起来的话角色就会翻滚起来

然后我们给player添加一个空组件,点击player右键create empty,然后命名为groundCheck,这个东东是为了我们之后检测人物是否在地面时用的,在这个空的组件右边属性面板选择一个合适的颜色便于我们修改它的transform

 把它放到角色的脚那里就行

 还有就是按键的触发,Edit->Project Settings->Input Manager,这样我们就进入了按键设置

 拉开Axed我们就可以添加或者改变我们想要的键位,比如这个Horizontal,这个是x轴方向的键位,a和d或者left和right,Vertical就是y轴方向的键位

这里已经帮我们绑定好了,我们不需要做任何变动

为了让角色动起来我们还要给角色添加动画

创建一个文件夹叫Animation来存放动画资源

在这个文件夹里面右键->create->Animation创建一个动画命名Idle

 记得在属性栏勾选Loop,让我们的Idle动画循环播放

 然后将这个Idle拖给我们的player,我们就会发现文件夹里多了一个叫player的Animator Controller

 同时在player的Inspector栏多了一个Animator,我们发现Animator Controller已经自动为我们创建并添加上去了,这样是不是非常方便

 然后我们通过window->Animation,打开Animation和Animator

 选择player,在Animation栏只有一个Idle动画,我们给这个Idle添加动画序列,我们上面说过,角色的动画都在Main Character文件夹的Mask Dude里面,选择Idle里面的所有图片拖到Animation栏里面

 将Samples改成15,就可以播放动画试试了,Samples越大播放速度越快

同理,我们创建一个run的动画,选择player,在Animation栏,点idle下面可以创建新的动画

 把这个新的动画命名为run,然后把run的动画序列拖进去,samples改为20就行

 我们之前不仅打开了Animation栏,还打开了Animator栏,Animator栏是干什么用的呢,Animator是用来进行动画的切换,打开我们Animator可以发现多了两个状态,一个idle一个是run,我们右键idle,make transition连到run,同样run也一样,这样我们就可以添加一些条件让这两个动画进行切换了

 

 在Parameters(参数)那里点击加号可以添加一个变量来作为动画间的切换的开关

我们添加一个bool变量表示run状态

 所以我们idle和run之间的连线就可以设置他们切换时的条件,比如我们点击idle朝向run的箭头,我们就可以设置什么时候从idle切换到run,记得把右边属性栏的Has Exit Time取消勾选,以及把settings里面的Transition Duration设置为0,以后所有动画之间的连线都要这样设置

 然后在下面Conditions就可以添加条件了,我们判断run为真时从idle状态切换到run状态

 从run状态到idle状态的设置与上面类似

 依次类推,我们再创建两个动画,并且设置他们之间切换的条件

分别是jump(起跳)的动画和fall(下落)的动画,这里不在一一讲解了,这里把相关的操作贴出来,但是记得去Animation文件夹里面把jump和fall两个动画的loop time取消勾选,这两个动画播放一次就够了

 

 

 Run->jump和idle->jump的条件都是一样的,都是jump为true

 Jump->fall的条件是jump为false,fall为true

 Fall到idle的条件是fall为false

 这样我们除了代码之外的准备工作就做完了。

然后下面我们就开始进行代码编写的工作啦。

链接:unity2D游戏之让人物动起来-下_真的没事鸭的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_52905520/article/details/125938536
今日推荐