Hello Unity Community!
It’s me again.
So, since I changed my Prefab from being in the Game when it Starts to a (Clone) which gets created shortly later, A NullReferenceException Error pops up in this Line:
if(!weaponObj.GetComponent<WeaponBehavior>().haveWeapon){
the weaponObj. is declared as:
weaponObj = PlayerWeaponsComponent.weaponOrder*;*
and the PlayerWeaponsComponent is declared as:
PlayerWeapons PlayerWeaponsComponent = Camera.main.transform.parent.transform.parent.GetComponentInChildren();
Code snippet to clarify what happens exactly:
- //find the PlayerWeapons script in the FPS Prefab to access weaponOrder array*
-
PlayerWeapons PlayerWeaponsComponent = Camera.main.transform.parent.transform.parent.GetComponentInChildren<PlayerWeapons>();* -
//scan the children of the FPS Weapons object (PlayerWeapon's weaponOrder array) and assign this item's weaponObj to the* -
//weapon object whose weaponNumber in its WeaponBehavior script matches this item's weapon number* -
for (int i = 0; i < PlayerWeaponsComponent.weaponOrder.Length; i++) {*
_ if(PlayerWeaponsComponent.weaponOrder*.GetComponent().weaponNumber == weaponNumber){_
_ weaponObj = PlayerWeaponsComponent.weaponOrder;
break;
}
}
}
}*_
* void PickUpItem (){*
* //if player does not have this weapon, pick it up*
* if(!weaponObj.GetComponent().haveWeapon){*
I can’t get behind why it shouldn’t find the weaponObj. anymore.
I hope someone can help me with this (:
Your sincerely,
Marco
It seems like you don't have a WeaponBehaviour script on that gameObject. Did you check in paused play mode if it's actually there?
– one_one