Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

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