Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
-1
Question by vittu1994 · May 15, 2016 at 05:02 PM · listcolorlooptileneighbour

Loop through a list, meet condition before passing to next element

Hey i have a hexagon grid that spawns in 10x10.

These tiles are all empty at first but with a for-loop i go through each tile and generate a random color and tag. This loop goes through a tile and then another each frame:

 for (int i = 0; i < tileList.Count; i++)
         {
             tileList[i].GetComponent<Tile>().RandomColor();
             yield return new WaitForFixedUpdate();
         }

This way it starts at element [0] in the list and generates a random color and then goes to element [1] and etc.

However i want the current element to meet a condition before it can pass over to the next element in the loop. If it doesnt meet a condition it will go through another loop and when the condition is true that loop will end the original loop will continue to the next element.

Is this possible? The reason for this is i want to be able to generate a grid with colored tiles that arent neighbour with eachother of the same color. So if i generate a color for a tile in the loop but next to it is a tile with the same color, i want the loop to continue until it gets to a color that a neighbour doesnt have and then it can pass over to the next tile.

Hope i made myself clear, ask if it seems confusing and ill try to be more simple.

Thanks

EDIT: This is how RandomColor() looks like in Tile.cs, the script that all tiles are holding:

 public Material[] color;
 public static string[] tags = {"blue", "green",
     "purple", "red", "yellow"};
 
 public void RandomColor()
     {
         int index = Random.Range(0, color.Length);
         GetComponent<Renderer>().material = color[index];
         gameObject.tag = tags[index];
     }
Comment
Add comment
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

0 Replies

· Add your reply
  • Sort: 

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

54 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 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 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 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

A public list of color in shader. 0 Answers

Unity List of Color array not showing in inspector? 3 Answers

Which one to use for, while or something else? 1 Answer

Error when adding an item to a list 0 Answers

Running the same Coroutine several times makes a loop not run? 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