hand
_1_7_29
4
返回栏目
1k
0.2k
0.5k
0.1k
0k
0.2k
0k
0.7k
0k
0k
0.4k
0.1k
4k
0.2k
0.1k
2k
0.2k
0.2k
0k
0k
0.5k
0k
0.9k
0.1k
1k
0.9k
2k
1k
2k
0.9k
1k
0k
1k
0k
1k
1k
1k
1k
0k
1k
1k
1k
0k
3k
1k
0k
0.3k
1k
0.3k
0.9k
0k
8k
9k
6k
2k
1k
2k
1k
1k
2k
0.6k
1k
0.6k
1k
0.5k
0.2k
2k
2k
2k
1k
2k
0k
0.8k
0.8k
1k
0k
0k
0k
0k
0k
0k
0k
0k
0.3k
0.4k
0.8k
0.3k
5k
1k
3k
7k
6k
3k
3k
1k
0.2k
2k
3k
2k
0.4k
0.5k
3k
2k
7k
3k
4k
2k
1k
6k
6k
1k
1k
0.9k
0.2k
0.3k
0.9k
1k
0k
0.8k
2k
0k
0.4k
0.1k
1k
0.9k
0.2k
1k
1k
0.5k
0k
0k
0.4k
4k
0.4k
2k
3k
1k
1k
1k
3k
5k
0k
1k
2k
0.5k
0k
1k
0k
1k
0.5k
0.8k
返回Unity - 游戏引擎栏目
作者:
贺及楼
成为作者
更新日期:2024-05-09 18:12:21
作用:检测碰撞
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
Unity - 游戏引擎
整章节共151节
快分享给你的小伙伴吧 ~