作用:检测碰撞
1、盒碰撞器(Box Collider)
2、椭圆碰撞器(Sphere Collider)
3、胶囊碰撞器(Capsule Collider)
4、车轮碰撞器(Wheel Collider)专用于车辆
5、网格碰撞器(Mesh Collider)
6、地形碰撞器(Terrain Collider)
//通过if来判断如果(这个碰撞器)碰撞到tag名为tank的物体时发送Message,执行TakeDamage()
if(collider.tag=="tank"){
collider.SendMessage("TakeDamage");
}
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TankHealth : MonoBehaviour {
public int hp = 100;
public GameObject tankExplosion;
public AudioClip tankExplosionAudio;
public Slider hpSlider;
private int hpTotal;
// Use this for initialization
void Start () {
hpTotal = hp;
}
// Update is called once per frame
void Update () {
}
void TakeDamage() {
if (hp <= 0) return;
hp -= Random.Range(10, 20);
hpSlider.value = (float)hp /hpTotal;
if (hp <= 0) {//收到伤害之后 血量为0 控制死亡效果
AudioSource.PlayClipAtPoint(tankExplosionAudio,transform.position);
GameObject.Instantiate(tankExplosion, transform.position + Vector3.up, transform.rotation);
GameObject.Destroy(this.gameObject);
}
}
}
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TankHealth : MonoBehaviour {
public int hp = 100;//血量
public GameObject tankExplosion;//坦克爆炸动画
public AudioClip tankExplosionAudio;//爆炸声音
public Slider hpSlider;
private int hpTotal;
// Use this for initialization
void Start () {
hpTotal = hp;
}
// Update is called once per frame
void Update () {
}
void TakeDamage() {
if (hp <= 0) return;
hp -= Random.Range(10, 20);//减伤害
hpSlider.value = (float)hp /hpTotal;
if (hp <= 0) {//收到伤害之后 血量为0 控制死亡效果
AudioSource.PlayClipAtPoint(tankExplosionAudio,transform.position);//爆炸声音
GameObject.Instantiate(tankExplosion, transform.position + Vector3.up, transform.rotation);//坦克爆炸
GameObject.Destroy(this.gameObject);//坦克移除
}
}
}
碰撞物体(炮弹):
1、加碰撞器,加Collider
被碰撞(坦克):
1、加tag,此处为tank