- Home /
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);
}
Answer by unit_nick · Sep 20, 2017 at 03:45 PM
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.
It is not terminated with a semicolon ";"
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.
I did forget the semicolon in the example above but that wasn't the issue. I'm still confused on what arguement I should use to call it though. An example would be perfect. I just need the line to call it. Or is there any way i can just destroy the other game object and not the one that has the script in the Update void?
Basically you probably just want to use a variation of hte example that @OusedGames pointed to
void OnTriggerEnter(Collider collider)
{
Destroy(collider.gameObject);
}
or
void OnCollisionEnter(Collision collision)
{
Destroy(collision.gameObject);
}
Only overridden functions of the $$anonymous$$onoBehaviour class will receive the Collider or Collision objects.
Answer by OusedGames · Sep 20, 2017 at 03:50 PM
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);
}
Your answer
Follow this Question
Related Questions
Reset other animations on screen 0 Answers
Can't see each other in multiplayer 2 Answers
Get center direction Vector3 between two other direction Vectors 1 Answer
Using an RPC call within an RPC function? 2 Answers
Enexpected Symbol Void (start) 1 Answer