A million dollar question!!!
Options
Ruslan
✭
in Photon Bolt
Hello everybody!
I will be very grateful if anyone can help me!
I use AdvancedTutorial package for bilding my game.
Instead of bullets, my players shoot arrows and I did the code that calls the ApplyDamage method, when an arrow hits the player
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Player") {
var serializer = col.GetComponent();
if (serializer != null) {
col.GetComponent ().ApplyDamage (22);
}
}
And it works well, but when the player has little HP or HP == 0 I get an error
//error
NullReferenceException: Object reference not set to an instance of an object
Bolt.AdvancedTutorial.PlayerController.ApplyDamage (Byte damage) (at Assets/samples/AdvancedTutorial/scripts/Player/PlayerController.cs:228)
GetHp.OnTriggerEnter (UnityEngine.Collider col) (at Assets/samples/AdvancedTutorial/scripts/MyScripts/Arrow/GetHp.cs:27)
//ApllyDamage Method
public void ApplyDamage (byte damage)
{
if (!state.Dead) {
state.health -= damage;
if (state.health > 100 || state.health < 0) {
state.health = 0;
}
}
if (state.health == 0) {
//Error indicates this line, but I do not understand the reason ????
entity.controller.GetPlayer ().Kill ();
}
}
Tell me please, what's wrong with my code?
I will be very grateful if anyone can help me!
I use AdvancedTutorial package for bilding my game.
Instead of bullets, my players shoot arrows and I did the code that calls the ApplyDamage method, when an arrow hits the player
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Player") {
var serializer = col.GetComponent();
if (serializer != null) {
col.GetComponent ().ApplyDamage (22);
}
}
And it works well, but when the player has little HP or HP == 0 I get an error
//error
NullReferenceException: Object reference not set to an instance of an object
Bolt.AdvancedTutorial.PlayerController.ApplyDamage (Byte damage) (at Assets/samples/AdvancedTutorial/scripts/Player/PlayerController.cs:228)
GetHp.OnTriggerEnter (UnityEngine.Collider col) (at Assets/samples/AdvancedTutorial/scripts/MyScripts/Arrow/GetHp.cs:27)
//ApllyDamage Method
public void ApplyDamage (byte damage)
{
if (!state.Dead) {
state.health -= damage;
if (state.health > 100 || state.health < 0) {
state.health = 0;
}
}
if (state.health == 0) {
//Error indicates this line, but I do not understand the reason ????
entity.controller.GetPlayer ().Kill ();
}
}
Tell me please, what's wrong with my code?
0
Comments
-
Sorry for the trouble, something in another reason, I'm missing Entity.controller will now look for what's wrong0
-
And why there can be a null error for the entity.controller.GetPlayer () .Kill ();?0