Unity技术-2D项目经验-下

2,656 阅读3分钟

「这是我参与2022首次更文挑战的第26天,活动详情查看:2022首次更文挑战」。

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

欢迎关注公众号【空名先生】获取更多资源和交流!

👉前提

这是小空坚持写的Unity新手向系列,欢迎品尝。

小空为了方便更多的人(新手)看明白,使用的汉字,真实项目尽量使用英文规则昂。

新手(√√√)

大佬(√)

👉实践过程

当你在空中碰撞了物体不松开移动按键的时候,可能会一直表现为悬空状态,这是因为默认碰撞体之间是有摩擦力存在的,这个时候你可以创建一个2D物理材质-将Friction(摩擦)改为0,然后将这个材质赋值给人物的2D碰撞脚本里面的变量来解决。

image.png 但是这样做就有可能造成另一种情况,就是在滑坡上人物无法坚持挺住,因为没有了摩擦会慢慢下滑到平面。如果还要精细处理就是预制体里面详细的调整了。

人物的移动跳跃下降等动画切换的时候如果显示表现上不正确,很可能是状态机切换线里面的退出时间造的孽。其他的动画也是类似的。其实多数情况下不需要有退出时间。

image.png

当一个碰撞勾上了是触发器的时候,在代码中可以回调OnTrigger等几个回调方法 如果是碰撞函数的话,则是OnCollision等几个函数方法

人物的移动代码完善优化

  1. 将相关移动代码放到FixedUpdate函数中
  2. 代码修改的跳跃力(Rigidbody2D组件变量.velocity属性改变y值)和重力(Rigidbody 2D组件中里面有重力变量属性)有相互作用影响,就好比人处在地球和月球,人的跳跃力不变的话,在地球重力大,表现为跳的低下降的快,在月球重力小,表现为跳的高下降的慢
  3. 跳跃代码在FixedUpdate中,需要按好多次才能跳
  4. 当人物只有一个方块碰撞的时候,容易出现卡住的情况,只要人物上方是方块碰撞,下半身是圆碰撞即可。

👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。