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.
array inspector reordering
How can i show the texture in the array?
GUI Box always on top
[SOLVED] Puzzled why one particular GUIText won't appear
Pushing textures in an Array