I can't run the function from other script

I have this error in unity; Object reference not set to an instance of an object

This is my character controller script;

private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Ammo")
        {
            Destroy(other.gameObject);
            GunWork Ammo = GetComponent<GunWork>();
            Ammo.addAmmo(5);
        }
    }

and this is the “GunWork” script “addAmmo” function part

public void addAmmo(int miktar)
    {
        toplamAmmo += miktar;
    }

my tag;

This GetComponent call is returning null:
GunWork Ammo = GetComponent<GunWork>();

That means that your character controller script is not attached to a GameObject that also has a GunWork component attached to it. Which object is the GunWork script attached to?

my gunController has that script what should i have to do? sorry. But i dont get it :frowning:

6812564--791060--upload_2021-2-7_21-34-11.png

i fix it thanks pal

gunController.GetComponent<GunWork>().addAmmo(5);
1 Like

The answer is always the same… ALWAYS. It is the single most common error ever. Don’t waste your life on this problem. Instead, learn how to fix it fast… it’s EASY!!

Some notes on how to fix a NullReferenceException error in Unity3D

  • also known as: Unassigned Reference Exception
  • also known as: Missing Reference Exception
  • also known as: Object reference not set to an instance of an object

http://plbm.com/?p=221

The basic steps outlined above are:

  • Identify what is null
  • Identify why it is null
  • Fix that.

Expect to see this error a LOT. It’s easily the most common thing to do when working. Learn how to fix it rapidly. It’s easy. See the above link for more tips.

This is the kind of mindset and thinking process you need to bring to this problem:

https://discussions.unity.com/t/814091/4

Step by step, break it down, find the problem.