Get Parent Class From Other Script


I have four scripts, Wall, Player, Enemy, and GamePart. Both Player and Enemy inherit from GamePart. Inside of GamePart there is a variable health. When an object enters an area i would like to deal damage to him, but i dont know if its an enemy or a player. I am aware that i could check for it using:


However i may add more objects that inherit from GamePart and i would like to do it more dynamically.

Basically i would want to do


But i get a object reference not set to an instance of an object

As you noticed, GameObject.GetComponent will only work with a specific component name and disregards inheritance. If you would like an easy check for all types of moving objects that may enter the sphere, try creating a script that all of them will have, instead of using inheritance. Then, you could always check for that specific component.

Health component = enterer.GetComponent<Health>() as Health; 
if(component != null)

You could make your health method static, I often find this more useful for me. Here is a brief example:

public static int health = 100;

public static void Damage()
health -= 5;

Then in your other class call your method by:


Hope this was helpful :slight_smile: