码迷,mamicode.com
首页 > 其他好文 > 详细

子弹射中敌人播放爆炸并销毁的动画效果

时间:2016-04-01 20:14:15      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

首先在敌人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);  
            }
          
        }
    }

 

子弹射中敌人播放爆炸并销毁的动画效果

标签:

原文地址:http://www.cnblogs.com/fuperfun/p/5345932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!