Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Whelandrew · Mar 07, 2012 at 08:18 PM · nullreferenceexceptionforeacharraylist

foreach fills array with

I'm receiving a NullReferenceException from a foreach loop that is locating a series of sprites based on their tag. The loop is finding all of the present objects and incrementing the array appropriately. But it is only transferring the last of the found objects into the array. All the other sectors are being filled with null.

 foreach(OTSprite go in temp){
             if(go.gameObject.tag=="building"){
                 buildings=new OTSprite[i+1];
                 buildingOrigin=new Vector2[i+1];
                 buildings[i]=go;
                 buildingOrigin[i]=buildings[i].position;
                 buildings[i].position=beneathScreen;
                 i++;
             }
     }
Comment
Add comment · Show 3
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Kleptomaniac · Mar 07, 2012 at 08:33 PM 0
Share

You need to format this code properly. Highlight all your code and press the '101010' button in the formatting bar in your question box.

avatar image Whelandrew · Mar 07, 2012 at 08:44 PM 0
Share

I have rewritten this post 4 times and it refuses to format correctly. Thanks, Unity!

avatar image Berenger · Mar 07, 2012 at 08:47 PM 0
Share

I may have edited it once as well ^^

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Berenger · Mar 07, 2012 at 08:47 PM

You are re-affecting buildings and buildingOrigin at each loop, so at the end you only have the last iteration, with the information at the index temp.Length-1. Declare and initialize those two arrays before the loop.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Whelandrew · Mar 07, 2012 at 08:51 PM 0
Share

Is there a way to change the size of the array dynamically? This code runs in different scenes that do not always have the same values.

avatar image Berenger · Mar 07, 2012 at 08:57 PM 0
Share

If you don't want to use lists, I added a script in the wiki to use built-in array sort of like lists, here. There isn't a resize function though, because Array class already have one.

Actually in that case, the size will be temp.Length, so just declare buildings = new OTSprite[temp.Length]. If the size don't change after that creation, don't $$anonymous$$d the beggining of that comment.

Your answer

Hint: You can notify a user about this post by typing @username

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

Answers Answers and Comments

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

FindWithTag in certain range 2 Answers

C# - foreach problem 3 Answers

Arraylist to GameObject[] array issue. 1 Answer

Accessing a prefab after instantiating results as null 1 Answer

Unable to delete object from a list using foreach loop 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges