UNITY方法的无重载采用1个参数

时间:2018-10-24 21:46:20

标签: c# unity3d

我有一个小问题。我试图在射击敌人时失去生命,所以我有2个脚本,一个在相机中受到伤害,因为它的fps是一个,在另一个敌人中则具有生命。问题是我正在尝试减少对健康的损害,但是消息出现在目标target.takeDamage(damage)的代码中,谢谢

我的代码:

相机

    void shoot(){
    RaycastHit hit;

    //Raycast desde la camara, hacia delante, la informacion del raycast y con el rango que le demos
    if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) {
        Debug.Log(hit.transform.name);

        //A quien hemos impactado (), y lo llamamos target
        EnemyBase target = hit.transform.GetComponent<EnemyBase>();

        //Comprobamos si lo que hemos impactado es un enemigo
        if(target !=null){
            //Si lo es le mandamos la variable de daño
            target.TakeDamage(damage);

        }
    }

}

敌人:

    public void TakeDamage() {
    vidaEnemigo -= damage;
    if(vidaEnemigo <= 0f){
        Die();
    }
}

void Die(){
    Destroy(gameObject);
}

1 个答案:

答案 0 :(得分:1)

您的public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); CapturedResultScrollView.Setup(CapturedResults); } 函数不接受任何参数,但是您尝试传递一个参数。给它一个参数(我猜您想要一个TakeDamageint这里):

float