private int damage;
    private float blood = 100;
    void OnTriggerEnter(Collider col)
    {
        if (col.transform.tag == "Shell")
        {
            if (col.name == "88Shell(Clone)") //被敌方88口径炮弹打中才掉血,其他口径的炮弹打中加血
            {
                damage = -Random.Range(30, 50);
                if (this.gameObject.name == "EnemyFrontArmor") //炮弹打到前装甲区,伤害减少10倍。
                {
                    damage =(int)(damage * 0.1f);
                }
                  blood += damage;
                if (blood <= 0)
                {
                    Debug.LogWarning("NPC已死亡!");
                    Destroy(this.transform.parent.gameObject);
                }
            }
            else  
            {
                damage = 10;
                blood += damage;
                if (blood >= 100)
                {
                    blood = 100;
                }
            }
            Blood.value = blood / 100;  //slider血条显示
        }
    }
老师,我这有问题。
问题:如果被打中侧面,伤害为30,剩余70。然后第二发打中前装甲时,伤害为3,剩余变成97了。
失败的方法:我把blood改为static时,这个坦克就没有问题,但是其他的坦克就变成公用这唯一的blood了,一辆坦克减血,其他坦克都掉血。
static静态变量是共享的,通过类名访问的,如果想要自己的独有的变量,就生命成public或者private的