当前位置:网站首页>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");
}
}
如有错漏之处,敬请指正!
边栏推荐
猜你喜欢
随机推荐
从零开始单相在线式不间断电源(UPS)(硬件)
卷积神经网络CNN
小程序如何使用订阅消息(PHP代码+小程序js代码)
有趣的USB接口和颜色分类
RT-Thread Studio学习(十二)W25Q128(SPI)的读写
【学习笔记】状压dp
unity3d-Animation&&Animator接口(基本使用)
LeetCode每日五题01:两数之和 (均1200题)
Triton部署mmdeploy导出的TensorRT模型失败篇
尚医通【预约挂号系统】总结
经典新诗九首
ContrstrainLayout的动画之ConstraintSet
简析强制缓存和协商缓存
高等代数_证明_两个矩阵乘积为0,则两个矩阵的秩之和小于等于n
C# 实用的第三方库
电商系统PC商城模块介绍
一天搞定JDBC02:开启事务
【我想要老婆】
adb无法桥接夜神模拟器
Detailed explanation of TCP protocol