子弹射中敌人播放爆炸并销毁的动画效果
Posted 礼桀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子弹射中敌人播放爆炸并销毁的动画效果相关的知识,希望对你有一定的参考价值。
首先在敌人enemy
的脚本下面
public class enemy : MonoBehaviour { public EnemyType type=EnemyType.enemy0; private float time = 0; public int framePerSecond = 10; public Sprite[] enemyExplosionArray; //存放动画帧的数组 private SpriteRenderer spriteRenderer; //用于得到动画效果 public bool isExplosion = false; //指定一个标志-开关 void Start() { //得到SpriteRenderer组件 spriteRenderer = this.GetComponent<SpriteRenderer>(); } void Update () { if (hp <= 0) { isExplosion = true; ExplosionAnimation(); } } //bullet脚本传递过来的消息 public void BeHit() { hp -= 1; } //播放摧毁的动画的方法 public void ExplosionAnimation() { time += Time.deltaTime; int indexFrame = (int) (time/(1f/framePerSecond)); //如果帧数超过数组长度就销毁游戏物体 if (indexFrame>=enemyExplosionArray.Length+1) { Destroy(this.gameObject); } else { //否则就播放动画 spriteRenderer.sprite = enemyExplosionArray[indexFrame]; } } }
然后进入子弹bullet脚本添加hp等于零的时候不检测碰撞的代码
void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Enemy") { if (!other.GetComponent<enemy>().isExplosion) { other.SendMessage("BeHit"); GameObject.Destroy(this.gameObject); } } }
以上是关于子弹射中敌人播放爆炸并销毁的动画效果的主要内容,如果未能解决你的问题,请参考以下文章