Affect Other Object (Custom Void)

Hello, I’m trying to affect the other game object in a custom void and pretty much I’m using the same as OnTriggerEnter (Collision other) but in a custom void and my problem is calling that void. I’m getting the error “No overload for method ‘Something’ takes ‘0’ arguments” which i guess means that i have to put something inside the () when I call it but I can’t figure out what exactly. I’ve tried Something(other : gameObject); but that just destroys the object with the script. Here is an example of my script:

	void Update () 
	{
	Something ()
	}

	void Something (GameObject other)
	{
	Destroy (other.gameObject);
	}

You are calling a method (or function). void is the return type. Because it is void you do not need to return anything. If it was float Something(GameObject other) you would have to return a float, etc…

Your call to Something() on line 3 has 2 problems.

  1. It is not terminated with a semicolon “;”
  2. You are not passing an argument.

Your method Something(GameObject other) has the problem that other already is a GameObject so there is no need to get the gameObject of other like you have on line 8 other.gameObject

So what you need to do is find the other game object at some point. Either inside the Something method (in which case you don’t need to pass any arguments) or outside Something in which case you need to pass a valid GameObject.

If you are not going to use an inbuilt game event (which can identify the object for you) then you will have to identify the object somehow and get a reference to it.

void OnTriggerEnter(Collider col){

         //Direct Call
         CustomVoidMethod(col.gameobject);

         //Only call if it has a certain tag/id
         if(col.CompareTag("Enemy"))
                CustomVoidMethod(col.gameobject);
}    
void CustomVoidMethod(GameObject go){
        //Do something
        Destroy(go);
}