当前位置:网站首页>unity2D横版游戏教程7-敌人AI死亡效果
unity2D横版游戏教程7-敌人AI死亡效果
2022-08-04 07:13:00 【真的没事鸭】
我们稍微完善一下敌人AI,我们给敌人添加一个死亡动画,命名为death

先创建一个Trigger变量来控制什么时候切换death,这个Trigger相当一个开关。死亡动画是任何状态都可以实现的,所以在Animator界面我们把death连到Any State,Any State就是任何状态下都可以执行,条件是death打开时


我们实现当人物跳到敌人头上将敌人消灭时,敌人会一边播放死亡动画,一边掉出界面的效果
这里我们介绍一下Animation Events,也就是动画事件,我们在Animation界面,有个加号,点击这个加号就可以创建一个Animation Event

Animation Event有什么用呢,Animation Event可以绑定我们写好的函数,在右边属性栏就可以看到

把Animation Event放在动画中指定的位置,当动画播放到这里时就会执行绑定好的函数,我们可以用这个实现播放完死亡动画后执行销毁敌人的函数
所以我们创建一个Animation Event,然后拖到death动画的结尾处

蓝色的小点点就表示我们创建的Animation Event,我们这里先不绑定函数
我们先稍微修改一下Enemy代码
我们让人物跳到敌人头上时先让敌人的碰撞器关闭,这样敌人就可以掉下去来,然后我们再播放死亡动画,当死亡动画播放完之后再销毁敌人

然后我们回到死亡动画,我们给我们之前创建的Animation Event绑定这个DeathFall的函数

这样就实现了当人物跳到敌人头上时,敌人一边播放死亡动画,一边掉出地图的效果
这节只有Enemy的代码稍微修改了一下,这里贴一下Enemy的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
protected Animator anim;
protected virtual void Start()
{
anim = GetComponent<Animator>();
}
//播放完死亡动画销毁敌人
public void DeathFall()
{
Destroy(gameObject);
}
//关闭碰撞器
public void Death()
{
//先把敌人的碰撞器关闭,这样敌人就可以掉下去了
GetComponent<Collider2D>().enabled = false;
//播放死亡动画
anim.SetTrigger("death");
}
}
如有错漏之处,敬请指正!
边栏推荐
- 打破千篇一律,DIY属于自己独一无二的商城
- Detailed explanation of TCP protocol
- New Questions in Module B of Secondary Vocational Network Security Competition
- 最强分布式锁工具:Redisson
- MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt
- RT-Thread Studio学习(十一)IIC
- Distributed Computing Experiment 2 Thread Pool
- 简析强制缓存和协商缓存
- 七夕情人节:中英文祝福短信送给你
- LLVM编译技术应用分析
猜你喜欢
随机推荐
关于我写的循环遍历
「PHP基础知识」转换数据类型
The school to apply for link
使用requests post请求爬取申万一级行业指数行情
Produce definition 产品与行业分析 勤于思考 善于总结 强于表达
QT + msvc2017编译器
最近的一些杂感-20220731
C# 实用的第三方库
国内外知名源码商城系统盘点
powershell和cmd对比
【论文笔记】—低照度图像增强—Supervised—RetinexNet—2018-BMVC
详解CAN总线:常用CAN连接器的使用方法
FCN - the originator of semantic segmentation (based on tf-Kersa reproduction code)
开发小技巧 navicate如何点击单元格显示全部的文本内容或通过图像查看内容
分布式计算实验1 负载均衡
TCP协议详解
Detailed explanation of TCP protocol
中职网络安全竞赛B模块新题
错误记录:TypeError: object() takes no parameters
Mysql insert on duplicate key 死锁问题定位与解决









