| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> unity2D:添加敌人AI——移动、动画、消灭、hurt效果 -> 正文阅读 |
|
[游戏开发]unity2D:添加敌人AI——移动、动画、消灭、hurt效果 |
注:该文为学习笔记,具体请看b站upMichael-Studio的unity教程2D入门:13敌人Enemy! 环境:unity2020.3 敌人效果:若玩家碰到敌人会掉血,若玩家踩到敌人的头上,则可以将敌人消灭 准备工作1.将素材导入 2.将素材尺寸调整好——Pixels Per Unit 即每个小格代表多大的像素 开始?3.创建2Dsprite 4.给该sprite添加图片,一般默认是最常用的一张图——Sprite属性 另外如果不显示,则需要调整sorting layer ? 添加重力效果和碰撞组件5.添加Rigidbody2D 和 collider 如果是tile碰撞体记得锁定RigidBody的z轴 添加动画效果6.添加animator 7.在asset中创建一个新的animator controller,并赋值给animator的Controller属性 ?具体添加动画的内容不再赘述 消灭敌人该函数为内置的函数,意为:当碰到2D碰撞体时执行 为了实现“踩到敌人将敌人消灭”我的判断条件是当Player的动画状态是falling时...判断条件不唯一,根据需要来 如果不是falling的状态则做出另外的反应(代码省略) ?如果想要游戏有更好的体验,可以在消灭敌人后有一些小反馈,比如反作用力向上起跳一小段 ? 受伤Hurt效果首先hurt动画需要读者自己给Player添加好 ?Plyer:? 被撞到后往后弹一段距离,切换Hurt动画并掉血 首先,这部分代码写在刚才else的括号中,如果想要有回弹的效果,本质上是改变了velocity,但是在update中不断的调用左右移动的函数,在该函数中的velocity改变值没来得及实现就被盖过去了,为了防止这种情况出现,我们需要这样做。 首先,else部分添加如下代码 ?注:ishurt为一个bool值,可以帮助我们在hurt期间先停止左右移动的刷新,只需在update中如下写 什么时候才可以让ishurt重归为false呢? 移动一段距离、经历一段时间、又或是velocity的速度减小为0 这里用的是最后一个方法,请注意,最后一个方法默认的是有摩擦力,也就是速度确实是在不断减小的,我们可以把Player-->Rigidbody-->linear Drag改大一些 然后写下面的代码:↓ ? 至于这几行代码该写在哪里?写在update中或者update调用的任意一个函数中,这里我写在了统一改变Player状态的函数中 ?接下来,Player切换受伤效果动画 1.需要添加一个bool参数hurt 2.动画间的关系如下,idle、run、jump都可能切换到hurt状态 3.切换时的参数调整记得注意 ?最后hurt应该能回到状态idle 条件为 hurt==false&&idle==true 其他地方不用改,此处改几行代码即可 ? ? ? ?PlayerControleer代码如下,需要自取
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 19:34:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |