猿问

标签在 Unity C# 中不起作用

我编写了以下代码来损坏我的播放器,但是它不起作用。我已经尽可能多地检查了编码错误,我知道我的问题是标签。使用 Debug.log 功能,我能够确认问题不在于我的命中框,并且标签设置正确。相同的系统反过来对我的玩家弹丸造成伤害。但是,使用我的播放器进行设置时它不起作用。


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;


public class DamageToPlayer : MonoBehaviour {


public float damageAmount;



public void OnCollisionEnter(Collision col)

 {

    if(col.gameObject.tag == "Player")

    {


        Debug.Log("nearlyThere");

        PlayerHealth ifPlayer = col.gameObject.GetComponent<PlayerHealth>();

        if(ifPlayer != null)

        {

            ifPlayer.PlayerDamage(damageAmount);


            Debug.Log("TOUCH");

        }


    }

}

这是敌人的密码。


}




using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;


public class PlayerHealth : MonoBehaviour {

public float PlayerStartHealth;


public float playerHealth;

public Text text;


public void Start () {

    playerHealth = PlayerStartHealth;

}



 public void PlayerDamage(float pAmount)

{

    playerHealth -= pAmount;

    if (playerHealth <= 0)

    {

        EndLevel();

    }

}


public void EndLevel()

{

    Debug.Log("u died m8");

}

public void FixedUpdate()

{

    text.text = playerHealth.ToString();


}

这是更多信息:控制台上没有出现任何调试。这就是我知道问题的方式。


}

这是玩家健康码本身。我不知道为什么这不起作用。


侃侃尔雅
浏览 240回答 1
1回答
随时随地看视频慕课网APP
我要回答