unity3D子弹与怪物的碰撞08

判断子弹是否打到怪物,怪物被碰撞后播放死亡动画

自己给bullet设置的tag 通过tag判断
image

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterManager : MonoBehaviour
{
    //1.检测是否被子弹打中
    private void OnCollisionEnter(Collision collision)
    {
        if(collision.collider.tag == "Bullet")
        {
            //2.销毁子弹
            Destroy(collision.collider.gameObject);
        }
    }
}

给所有动物设置脚本

image

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterManager : MonoBehaviour
{
    //3.定义动画
    private Animation anim;
    //5.定义两个动画状态
    public AnimationClip idleClip;
    public AnimationClip dieClip;
    private void Awake()
    {
        //4.获得动画组件
        anim = gameObject.GetComponent<Animation>();
        //6.赋值动画
        anim.clip = idleClip;

    }

    //1.检测是否被子弹打中
    private void OnCollisionEnter(Collision collision)
    {
        if(collision.collider.tag == "Bullet")
        {
            //2.销毁子弹
            Destroy(collision.collider.gameObject);
            //7.切换动画
            anim.clip = dieClip;
            anim.Play();
        }
    }
}

全部动物赋值

image

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterManager : MonoBehaviour
{
    //3.定义动画
    private Animation anim;
    //5.定义两个动画状态
    public AnimationClip idleClip;
    public AnimationClip dieClip;
    private void Awake()
    {
        //4.获得动画组件
        anim = gameObject.GetComponent<Animation>();
        //6.赋值动画
        anim.clip = idleClip;

    }

    //1.检测是否被子弹打中
    private void OnCollisionEnter(Collision collision)
    {
        if(collision.collider.tag == "Bullet")
        {
            //2.销毁子弹
            Destroy(collision.collider.gameObject);
            //7.切换动画
            anim.clip = dieClip;
            anim.Play();
        }
    }
    private void OnDisable()
    {
        anim.clip = idleClip;
    }
}

posted @ 2023-03-04 19:36  flyall  阅读(189)  评论(0)    收藏  举报