Search Unity

Instantiate Error - Must be missing something simple...

Discussion in 'Scripting' started by Vimalakirti, Nov 10, 2010.

  1. Vimalakirti

    Vimalakirti

    Joined:
    Oct 12, 2009
    Posts:
    755
    This code:


    Code (csharp):
    1.  
    2.             // load the prefab
    3.  
    4.         GameObject instance = Instantiate(Resources.Load(prefabPath));
    Is throwing this compile error: Assets/Scripts/OOP/Detailer.cs(14,28): error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists (are you missing a cast?)

    Suggestions?
     
  2. Alexey

    Alexey

    Unity Technologies

    Joined:
    May 10, 2010
    Posts:
    1,624
    >> An explicit conversion exists (are you missing a cast?)
    The right answer is: yes i am missing the cast 8)
    GameObject instance = (GameObject)Instantiate(Resources.Load(prefabPath));

    the rules became stricter with unity 3.0
     
  3. Chris-Sinclair

    Chris-Sinclair

    Joined:
    Jun 14, 2010
    Posts:
    1,326
    In C#, I thought Instantiate always returned a type UnityEngine.Object and would require casting, even in Unity 2.x
     
  4. Vimalakirti

    Vimalakirti

    Joined:
    Oct 12, 2009
    Posts:
    755
    This worked too: (C#) GameObject instance = Instantiate(Resources.Load(prefabPath)) as GameObject;

    Thanks.