当前位置:网站首页>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");
}
}
如有错漏之处,敬请指正!
边栏推荐
猜你喜欢
随机推荐
串口监听 - 软件方案
2022爱分析· 银行数字化厂商全景报告
安装GBase 8c数据库的时候,报错显示“Resource:gbase8c already in use”,这怎么处理呢?
高等代数_证明_两个矩阵乘积为0,则两个矩阵的秩之和小于等于n
【selenium自动化】第四篇,结合testNg
千古第一文人苏轼的众CP
将回调函数转为Flow
adb无法桥接夜神模拟器
C语言指针
RHCSA第五天
无人驾驶运用了什么技术,无人驾驶技术是
LeetCode 135. 分发糖果
[想要访问若依后台]若依框架报错401请求访问:error认证失败,无法访问系统资源
字节跳动岗位薪酬体系曝光,看完我真的酸了...
Distributed Computing Experiment 4 Random Signal Analysis System
DropBlock: Regularization method and reproduction code for convolutional layers
SystemVerilog-条件(三元)运算符
【字符串】最小表示法
The national vocational skills contest competition of network security emergency response
全国职业院校技能大赛网络安全竞赛之应急响应