unity3d c#用于两个坦克对打血条的增减

unity3d c#用于两个坦克对打血条的增减_第1张图片

using UnityEngine;
using UnityEngine.UI;

/// 
/// 作用于两个玩家互相攻击
/// 
public class OnCollision : MonoBehaviour
{
    public GameObject explosion;//定义一个粒子效果
    public GameObject bustedTank;//定义一个被摧毁时抛出的坦克残骸
    void OnCollisionEnter(Collision other)
    {

        if (other.gameObject.tag != null && other.gameObject.tag.Equals("q"))   //寻找到对方的标签
        {
            //先拿到被击中物体的生命对象
            //获取到类Life
            Life life = other.gameObject.GetComponent();
            //攻击掉血每次20
            life.subBlood(20);
            GameObject p = GameObject.Find("Image"); //获得精灵图片
            Image imageShowBlood = p.GetComponent();//将Image类的组件赋给对象
            imageShowBlood.fillAmount = (life.bloods+0.0f)/100;//获得图片血条按比例减少减少
            if (life.bloods <= 0) //如果血量为0以下
            {
                Destroy(other.gameObject);//抛出坦克的残骸
                Instantiate(bustedTank, transform.position, transform.rotation);//残骸位置是当前坦克位置
            }
        }
        if (other.gameObject.tag != null && other.gameObject.tag.Equals("e"))  //寻找到对方的标签
        {
            //先拿到被击中物体的生命对象
            //获取到类Life
            Life life = other.gameObject.GetComponent();
            //攻击掉血每次20
            life.subBlood(20);
            GameObject p = GameObject.Find("Image"); //获得精灵图片
            Image imageShowBlood = p.GetComponent();//将Image类的组件赋给对象
            imageShowBlood.fillAmount = (life.bloods + 0.0f) / 100;//获得图片血条按比例减少减少
            if (life.bloods <= 0) //如果血量为0以下
            {
                Destroy(other.gameObject);//抛出坦克的残骸
                Instantiate(bustedTank, transform.position, transform.rotation);//残骸位置是当前坦克位置
            }
        }
        Destroy(gameObject);        //销毁炮弹      
        GameObject obj = Instantiate(explosion, transform.position, transform.rotation);//产生爆炸效果
        Destroy(obj, 1.5f);        //销毁爆炸效果
    }

}
using UnityEngine;

/// 
/// 上个代码 的附加脚本 负责生命的定义跟减少;
/// 
public class Life : MonoBehaviour {
    public int bloods = 100;  // 定义坦克的血量为100
    public void subBlood(int value)///公开血量
    {
        bloods -= value;//血量递减

    }
}

你可能感兴趣的:(unity3d,c#)