Unity3D开发学习③ 新建角色,设置碰撞箱,角色移动

Unity3D开发学习① Unity安装,导入素材

Unity3D开发学习② 切割素材,设置背景,绘制地图,图层顺序

 

 V大的预科作业测试太难了,先学会unity轻松一下

1.建立角色

首先找到贴图

 

 贴图位置如上,在player贴图下是player的几种状态的贴图文件夹

在导入素材前应该先设置贴图的大小,统一为16

 

 

按着ctrl单击素材即可多选,批量设置属性

导入角色图片有俩种方法

  1. 直接拖入
  2. 新建Sprite再导入素材

1.直接拖入游戏视图就可以开始后续的设置了

2.新建Sprite再拖入素材

 

 

 

 这里新建完之后顺便改名了

 

 将素材拖入后即可在游戏视图内看见角色,看不见的话可以设置一下图层

 

 上图没设置图层被地图遮挡了

 

 然后就可以在Game视图里面预览

 

 

 

 挺秃然的,这里就一直这样了。

这里如果想要让角色感受到重力就需要给Player加上刚体组件(Rigidbody)

 

 选中player,点击Add Component,在Physics 2D中选中Rigidbody 2D添加刚体组件

添加完刚体然后预览游戏就可以看见角色能感受到重力了

 

 

2.添加碰撞器

但是这里角色只会一直往下落,所以还需要给角色和地图设置碰撞器

 

 

 首先给player添加collider,依旧是在Physcis 2D中找到Box Collider组件,点击添加一个碰撞器

然后就可以观察到角色附件多了一个绿色的框

 

 这就是角色的AT力场(是碰撞器的位置

 

 

 

 然后选中EditCollider就可以改变碰撞器大小

 

 然后就可以设置地图的碰撞器了

 

 选中Tilemap组件后就可以在Tilemap中为Tilemap添加Tilemap Collider 2D组件了

 

 然后就可以看见地图周围也加了绿框

 

 然后就可以站在平台上了

 

 而为了避免站在草上这种生草行为

 应该将草这种不需要碰撞箱的地图分另一个Tilemap绘制

 

 此处已擦除原Tilemap中的草,然后在grid中新建Tilemap命名为grass,然后在其中绘制

再重新设置tilemap的碰撞器,就不会使草也被碰撞器包围

 

 角色也能站在平台上而不是被草撑住了(这个看具体需求吧)

3.角色移动

再顺便加上角色移动吧

首先需要获取左右移动的键位

 

 

这里可以打开unity的edit中观察左右移动的键位与标识名

然后通过这个Horizontal即可获取玩家是否输入了左右位移键位

接着就是代码部分了

 

 

 

 

新建一个C#脚本 

可以在组件中添加,组件添加的js会直接出现在assets文件夹下

 

 这里我命名为了PlayerController

 

然后新建一个在assets文件夹下新建一个scripts文件夹储存脚本文件

这里应该将脚本放到scripts文件夹中方便管理

(也可以新建组件,删掉js然后添加自己手动写的js,脚本组件为空时直接拖入即可

 

 然后就可以开始愉快的写代码了

    如果正常的安装完了所有东西,这里双击脚本会自动打开Vs2019进行编辑

 

 像这样

(在确保有一定编程的基础下就可以开始进行方向键的获取与更新角色视图(或者说设置角色方向速度)了

 

 首先定义俩个变量和一个方法

因为默认继承了MonoBehavior,游戏进行时将会每帧调用update方法(查了查资料,不然实在不是很懂)

(我本意是先学着做一个2D游戏,没打算知其所以然,所以先跟着做吧)

 

 

然后在handleMsg中就需要获取用户的键盘输入,然后设置角色的方向速度

↓康代码吧

 

 然后不要急冲冲的进游戏预览,还需要为脚本的属性加上角色

 

 不然会出现如上警告⚠

 

 可以看到我们设置到脚本中的 mPlayer此时还是none,这就需要选中player对象拖入这里,然后记得设置一个速度

 

 然后就可以在游戏预览中看到player滚来滚去了

 

 

 

 应为这里还需要给刚体在属性中锁定z轴,不然角色就会应为加速度的原因而旋转(刹不住车

 

 在刚体设置中找到constraints(约束)

选择冻结Z轴旋转即可

 

之后的转向和跳跃就再等会吧

 

posted @ 2021-01-14 12:21  虚青海  阅读(1253)  评论(0编辑  收藏  举报