Unityでゲーム作成をしています。
以下のコードで、totalDamageという変数を表示させるため、uiManager.ShowDamage(totalDamage)という関数で、totalDamageという変数を呼び出そうとしたところ、NullReferenceExceptionが出てしまい、どうしてもtotalDamageという変数を呼び出すことができません。。
そのあとのtotalDamageを変数として扱う関数では正しく呼び込まれているので、どうしてuiManager.ShowDamage(totalDamage)だけNullReferenceExceptionが出てしまうのか、原因らしきものがあればご指摘をいただきたいです。。
該当のソースコード
public void Attack(CardController defender, CardController attacker, bool overdrive) { int impactDamage = attacker.model.iAT - defender.model.iDF; int energyDamage = attacker.model.eAT - defender.model.eDF; int blastDamage = attacker.model.bAT - defender.model.bDF; if (impactDamage < 0 && attacker.model.iAT != 0) { impactDamage = 10; } else if (impactDamage < 0 && attacker.model.iAT == 0) { impactDamage = 0; } if (energyDamage < 0 && attacker.model.eAT != 0) { energyDamage = 10; } else if (energyDamage < 0 && attacker.model.eAT == 0) { energyDamage = 0; } if (blastDamage < 0 && attacker.model.bAT != 0) { blastDamage = 10; } else if (blastDamage < 0 && attacker.model.bAT == 0) { blastDamage = 0; } // デバッグ Debug.Log("impactDamage: " + impactDamage); Debug.Log("energyDamage: " + energyDamage); Debug.Log("blastDamage: " + blastDamage); if (overdrive) { totalDamage = (impactDamage + energyDamage + blastDamage) * 3; Debug.Log("TotalDamage: " + totalDamage);
** uiManager.ShowDamage(totalDamage);**
defender.model.Damage(totalDamage);
}
else
{
totalDamage = impactDamage + energyDamage + blastDamage;
** uiManager.ShowDamage(totalDamage);**
Debug.Log("TotalDamage: " + totalDamage);
defender.model.Damage(totalDamage);
}
}

0 コメント