Hey guys, just a small issue with a GUIContent array.
It would seem that it doesn't like to be re-sized. Here is my code:
buttons.partyButtons = new GUIContent[skills.partySize];
for(var j : int; j < skills.partySize; j++)
buttons.partyButtons[j].tooltip = currentParty[j].GetComponent(Info).fullName;
So I'm resizing it to the value in a different array then adding the names of things in another array to the tool tips of the GUIContent array. When I run this however I'm give this error.
NullReferenceException: Object reference not set to an instance of an object
That points to the line inside the for loop. If I remove the resizing of the array and re-size it manually it works no problem.
I found adding a yield between the re-size and the loop helped but only about 30% of the time.
Answer by syclamoth
Jan 08, 2012 at 10:50 AM
Arrays can't be resized- what you are doing there is creating an entirely new array and replacing the old one!
The problem is that by creating the array of GUIContents, all it does is create a number of 'GUIContent' shaped 'holes'- not actual GUIContent objects. Assuming that you are going to change everything about the GUIContents, you need to use the line
buttons.partyButtons[j] = new GUIContent("someText", currentParty[j].GetComponent(Info).fullName);
instead. Remember to set the rest of the GUIContent at the same time, since all three of its members will be null.
Thanks! When I said re-sized I was meaning re-creating, I knew that part. The funny thing is that I've done the above method for Transform arrays, etc with no issues what so ever.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users post good questions and use the site effectively we have posted a user guide.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
Answers and Comments
5 People are following this question.
Deselect a textfield with enter if string is empty?
Why kind of array or list should I use for multiple types of data?
array inspector reordering
More elements inside GUI button
problem declaring an array inside an if statement