- Home /
New Monobehaviour warning - instantiating unattached functions
Hello, the compiler is giving me warnings with the "map[x,z] = new Block();" section of code.
void BaseMap() {
bool x_color = true;
bool y_color = true;
for(int x = 0; x < sizex; x++) {
x_color = !x_color;
for(int z = 0; z < sizez; z++){
map[x,z] = new Block(); //Warnings
if(z == 0){
map[x,z].SetColor(x_color);
y_color = x_color;
}
else{
y_color = !y_color;
map[x,z].SetColor(y_color);
}
map[x,z].SetPosition(x,z);
}
}
}
Essentially, I'm trying to procedurally populate a map in the checkerboard pattern and I'm doing it with an array of the Block function, which holds the colors and Vector3s of each block. The only solutions I've found through google requires attaching the script to an existing object, which is ass backwards of what I'm trying to accomplish, the Block object is meant to instantiate the cubes after all the relevant info has been set.
Can anyone advise? Is there a more Unity friendly way of doing what I'm trying to?
You need to attach the script to an object in the scene, because it needs to have a starting point! Why are you so against using empty objects in this way? Certainly having an un-needed transform seems a little wasteful, but to be honest you only need one of them literally all of your 'object-independent' logic.
The problem wasn't so much as creating an unneeded object as me creating a two dimensional array's worth of unneeded objects. As I figured out changing the Block function from a $$anonymous$$onoBehaviour to a ScriptableObject was the ideal solution as Block was meant to be more of an Abstract class.
Answer by Gennadios · Feb 16, 2012 at 08:39 AM
Never mind, I should have read the warning more carefully. Having Block inherit from ScriptableObject and instantiating with
map[x,z] = ScriptableObject.CreateInstance("Block") as Block;
fixed everything.
Your answer
Follow this Question
Related Questions
`UnityEditor.EditorUtility.GetPrefabType(UnityEngine.Object)' is obsolete? 0 Answers
Getting Unresolved Reference Warnings After Unity Update (To 5.3.4f1 64-bit) 3 Answers
error CS0649 1 Answer
Static function won't call another static function 1 Answer
Warnings when I build my Android apk 2 Answers