x


Resource Load Prefab

I get the error:

ArgumentException: The prefab you want to instantiate is null. UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/BuildAgent/work/b0bcff80449a48aa/Runtime/ExportGenerated/Editor/UnityEngineObject.cs:71) UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/BuildAgent/work/b0bcff80449a48aa/Runtime/ExportGenerated/Editor/UnityEngineObject.cs:52) sCameraControls.Update () (at Assets/sCameraControls.js:100)

What I'm trying to do is store a list of prefab references in a class/struct and then use it as a master list when drawing the gui, spawning the objects, etc. I can't get Resource.Load to find the prefabs.

class objectInfo extends System.ValueType {
    var name:String;
    var prefabName:Object;
}
var objectList = new objectInfo[3];
var objectSelectionNew = 0;
var objectSelectionOld = -1;
var prefabPlacedObj:Object;

function Start () {

    // define placeable objects
    var i=0;
    objectList[i].name = "default box";
    objectList[i].prefabName = Resources.Load("prefabCube");
    print(objectList[i].prefabName);

    i+=1;
    objectList[i].name = "default sphere";
    objectList[i].prefabName = Resources.Load("prefabCube2");
    print(objectList[i].prefabName);

    i+=1;
    objectList[i].name = "default cylinder";
    objectList[i].prefabName = Resources.Load("prefabCube3");
    print(objectList[i].prefabName);
}

function OnGUI() {
    // draw the onscreen gui

    // draw a list of placeable objects
    for(var i=0;i<objectList.length;i+=1) {
       if(GUI.Button(Rect(0,i*50,100,50),objectList[i].name)) {
         objectSelectionNew = i;
         //print("Clicked!");
       }
    }
    if(objectSelectionNew != objectSelectionOld) {
       objectSelectionOld = objectSelectionNew;
       prefabPlacedObj = objectList[objectSelectionNew].prefabName;
       print(prefabPlacedObj);
    }
}
more ▼

asked Mar 09 '12 at 07:43 AM

jgstewart gravatar image

jgstewart
1 2 2 3

There is no line in your code where you actually Instantiate something, so if you get that exception there is some code missing.

Mar 09 '12 at 12:28 PM StephanK

Spree1 is right; the error is at sCameraControls.Update () (at Assets/sCameraControls.js:100) - Provide your Update () function in your question.

Mar 10 '12 at 11:20 AM Kleptomaniac
(comments are locked)
10|3000 characters needed characters left

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x5070
x396
x336
x224
x47

asked: Mar 09 '12 at 07:43 AM

Seen: 1047 times

Last Updated: Mar 10 '12 at 11:20 AM