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 Yarden-Raveh · May 07, 2013 at 01:53 PM · instantiategridefficiencyblockmap making

Efficient grid system

I am asking this question here because i think i might be approaching this problem the wrong way. I am trying to program a grid system that will allow my players to design map layout similar to what you see in Dungeon Keeper or Evil Genius. I want the ability to load those layout and control their position in the scene, so i created a GridController object for that.

During Start the controller runs this code:

  gridArray= new GameObject[gridSize,gridSize];
             for (int i=0;i<gridSize;i++)
             {
                 for (int n=0;n<gridSize;n++)
                 {
                     gridArray[i,n]=Instantiate(gridBlock,new Vector3(n,0,i),transform.rotation)  as GameObject;
                     gridArray[i,n].transform.parent=transform;
                 }
             }

gridBlock being the basic prefab later to be replaced by other prefabs through input, however even when that prefab is a basic block object the load time is very long and my pc slows down when i try to select several block through the scene camera. The current gridSize is 100.

Any lower grid size and my players won't have enough room to design layouts. Anyway to make this more efficient? Any ideas on a better approach?

Comment
Add comment · Show 1
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 TonyLi · May 07, 2013 at 02:23 PM 0
Share

100x100 is 10,000 prefabs. That's a lot of objects. You'll want to find a way to cull objects from your processing so you're never looping over the whole grid. What's slow? Rendering? Selection? Scrolling after selecting? How have you implemented selection?

In general, after your initialization in Start(), never loop over the entire grid, and try to avoid any heavy operations in the Update methods.

Also, consider using a pool manager. You don't want to be constantly initializing and destroying objects. This usually makes a big difference in projects with lots of dynamic objects such as projectiles that only "live" for a short time; it may or may not help you depending on your design.

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Eric5h5 · May 07, 2013 at 02:00 PM

That would result in far too many GameObjects. Use the Mesh class instead to build chunks; see the various Minecraft topics, which generally have info about this sort of thing.

Comment
Add comment · 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

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

14 People are following this question.

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

Related Questions

How to instantiate the prefabs on grid in Unity? 1 Answer

Keeping track of which areas remain unexplored 1 Answer

how to tell if fence encloses area 1 Answer

Improving Grid Algorithm 1 Answer

Need Help With 2D Array Grid Position Tracking With JavaScript 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