微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D开发学习⑥ 跳跃动画,LayerMask

目录

 

1.跳跃动画

 

首先新建一个动画,拖素材(记得选中player和设置素材图片大小) 设置一下采样率就搞腚了跳跃动画,可以准备设置到角色上了

 

 

 

 

 

 

 直接拖入就发现这是跳跃的完整动作(包括下落,所以应该分成fall 和 jump俩个动画

 

 

 

然后打开Animtor管理这俩动画

首先理清几个状态的转换

idle(常态)中可以jump(跳跃)

run也可以jump

但是jump之后应该是下落,然后回归常态

理清逻辑之后就可以在几个动画之前设置过渡

 

 

 大概是这样

 

 

 然后添加状态转换的条件,这里先添加俩个布尔值参数

 

 

 

 

 

 然后为idle→jump,run→jump 设置一下动画的duration,exitTime,然后设置条件为跳跃时触发(isJump==true)

设置完跳跃动作的触发就可以在脚本文件里对条件进行回调设置了

 

 

 

 

 

 似曾相识の代码.jpg

 

之前已经在这里声明了Animator控件,所以想要回调跳跃状态只要在跳跃实现代码中回调即可

 

 

 

 然后预览的时候就发现跳时有动画了,但是没有处理从跳跃到下落的代码,于是角色就一直卡其脱离太

 

 

 

 

 

所以设置一下跳跃到下落的处理下落到常态的处理

然后在代码增加对跳跃,下落状态的判断(都在注释里了),写完代码记得塞在FixedUpdate中

 

 然后就可以肆意的蹦蹦跳跳了

 

 (莫名像骑士踢,凑合着用也还算可以

但原教程的操作似乎可以应用更广,还是照着学学吧

 

 刚才的代码会出现跳到斜坡上可能不能及时切换动画的问题(到地图最高点y速度也为0

2.LayerMask

 

 

 

 首先声明一个LayerMask

  

 

 图层分了很多个,而声明ground就是为了区分哪一个是地图图层,先新建一个图层层级命名为Ground;

 

 

 

 

然后设置tilemap的图层,还有controller的 Ground

 

 

然后需要在代码中判断是否触碰到地面,首先需要获取角色的collider

 

 

 

 

 

 

 声明,拖入,老一套了

然后写判断代码

 

 然后可以执行康康效果

主要的问题都处理完了,现在也积累了不少小bug

例如走动的时候秃然急停,修改后从斜面跳跃还是无法及时切换动画状态,跳跃撞到ground就直接变成常态(误判落地)之类的

那就之后再DEBUG吧

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐