Search Unity

Invoke with parameters

Discussion in 'iOS and tvOS' started by abgamers, Nov 23, 2010.

  1. abgamers

    abgamers

    Joined:
    Dec 22, 2009
    Posts:
    97
    Hi Im trying to invoke a function which is having 2 parameters,
    can anyone tell me how to use it

    say for example im trying to invoke following function

    void TestTimer (gameObject obj1, gameObject obj2){
    ....
    }

    so how the invoke is going to be

    invoke("TestTimer:eek:bj1:eek:bj2",0.5f);????
     
  2. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi

    Based on the Invoke documentation you cannot include parameters http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.Invoke.html.

    If you just have two gameObjects and they never will change then just access them in the TestTimer function/method

    Code (csharp):
    1. var gameObject1 : gameObject;    // Drag gameobject 1 to this variable in the Unity Editor
    2. var gameObject2 : gameObject;    // Drag gameobject 2 to this variable in the Unity Editor
    3.  
    4. function Start()
    5. {
    6.      Invoke("TestTimer", 0.5);
    7. }
    8.  
    9. function TestTimer()
    10. {
    11.      // perform whatever actions you want on the 2 gameobjects
    12.      gameObject1.performSomeAction();
    13.      gameObject2.performSomeOtherAction();
    14. }
    If you need to modify 2 gameobjects every 0.5 seconds and the 2 gameobjects can change to be other instances because maybe you have 20 different game objects in your game then that's going to be a little different.

    Cheers
     
  3. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Instead of Invoke, use a coroutine, and use yield WaitForSeconds to implement the delay.

    --Eric