- Home /
Reference JS array of Objects = errors
I have a class aPart(), I use a Builtin array to load my parts in the inspector that will be used in my game. But my list of parts changes, so I need a JS array so i can re-size. At runtime, i convert my builtIn array to the JS array. But when I have #pragma Strict on, it leaves me with Object errors while referencing my new JS array, because It has not been filled yet.
var loadablePartList : aPart[]; //i load this in the inspector
public var partList = new Array(); //then convert it into this, so that i can resize on the fly as i get new parts
When i reference partList, i get object errors:
if (GUI.Button(Rect(partList[i].partIconRect), partList[i].partIcon))//if a button is clicked
{
//Do something
}
Error:
'partIconRect' is not a member of 'Object'.
'partIcon' is not a member of 'Object'.
What is the proper way to go about this? Do i really have to continually convert the array instead back and forth as parts are added or subtracted?
Answer by Eric5h5 · Mar 01, 2012 at 10:42 PM
Never use JS Array. Use List instead, which can be resized easily and doesn't have casting problems like that (and is much faster, and shows up in the inspector).
Is there reference to these lists in the documentation? I have heard people talking about them when searching but didnt see when trying to understand how to declare one. How would I declare the partList : list?
http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
Same as C#, except for an extra ".". i.e.,
var foo = new List<int>(); // C#
var foo = new List.<int>(); // JS
Your answer
Follow this Question
Related Questions
Resizing arrays, and what is the default array type anyway? 3 Answers
How do I Resize an Array in JS? 1 Answer
IndexOutOfRangeExeption - Array index is out of range 2 Answers
Array variable assigned to instantiated object changes in all instantiated objects? 1 Answer
Getting a variable from a GameObject inside a 2d array? 1 Answer