首先准备一个材质球
1、子弹在遇到敌人时,触发敌人的受伤反应,并且销毁自己:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bullet : MonoBehaviour {
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.transform.tag == Tags.Enemy)
{
collision.gameObject.GetComponent<Hurt>().BeHurt();
Destroy(this.gameObject);
}
}
}
2、敌人得到受伤通知时,放出爆炸效果,闪白:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hurt : MonoBehaviour {
[HideInInspector]
public Material m_body;//默认的材质
public Material m_hurt;//用于闪白的材质
public GameObject m_blow;//爆炸的特效
private SpriteRenderer m_sprite;
// Use this for initialization
void Start () {
m_sprite = GetComponentInChildren<SpriteRenderer>();//脚本挂在控制层,为父物体,子物体为显示层
m_body = m_sprite.material;
}
public void BeHurt()
{
m_sprite.material = m_hurt;
Instantiate(m_blow, m_sprite.transform.position, Quaternion.identity);//放出特效
Invoke("Back", 0.05f);//0.05秒后恢复
}
private void Back()
{
m_sprite.material = m_body;
}
}