我有2个脚本。两者都有健康值。
//Player1Script
public float healthPlayer1 = 100f;
------------------------------------
// Player2Script
public float healthPlayer2 = 75f;
我在 Player1 脚本中添加了引用 Player2 的公共脚本。
public Player2Script p2Code;
Player2Script具有一种接收损害的功能:
public void TakeDamageP2()
{
healthPlayer2 -= 10f;
}
因此,为了施加损害,我在 Player1 脚本中使用OnTriggerEnter2D函数:
public void OnTriggerEnter2D(Collider2D other)
{
if(other.CompareTag("P2"))
{
p2Code.TakeDamageP2();
Debug.Log("D'oh!");
}
}
运行项目时,在控制台中出现错误消息NullRefenceException: Object not set to an instance of an object.
,检查了所有内容,正确标记了播放器和子对象,设置了打孔机对撞机扳机,一切正常,但损坏了不会发生。
版本:: Unity 2019.2.12f1