Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 Chocolade · Nov 29, 2017 at 10:54 PM · c#scripting problemscript.

Why when i color 4 walls of a grid 10x10 it's coloring 10,9,9,8 and not 10,10,10,10 ?

I'm sure the problem is somewhere with the IF/ELSE conditions and maybe i should use magnitude and math.epsilon but not sure how and how to figure it logic why it's not coloring all the 4 walls.

In the end i'm getting 36 colored blocks instead 40.

This is a screenshot showing on the scene view the grid and the 4 walls of what i mean colored in red,blue,green,yellow

I know that if i color them all they will meet at the 4 corners at 0,0 and 0,9 and 9,0 and 9,9 But still i want to color them all and get 40 colored blocks and not 36.

Now the way i'm coloring it i'm getting this: Red = 10 colored blocks Blue and Green both = 9 colored blocks and Yellow = 8 colored blocks. I wonder how can i use magnitude and math.epsilon if needed and how and what to change in the IF/ELSE statements ?

grid

And this is the script:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class GridGenerator : MonoBehaviour
 {
     public GameObject gridBlock;
     public int gridWidth = 10;
     public int gridHeight = 10;
     public List<Vector3> positions = new List<Vector3>();
     public List<GameObject> blocks = new List<GameObject>();
 
     private GameObject[] wallsParents = new GameObject[4];
 
     void Start()
     {
         wallsParents[0] = GameObject.Find("Top Wall");
         wallsParents[1] = GameObject.Find("Left Wall");
         wallsParents[2] = GameObject.Find("Right Wall");
         wallsParents[3] = GameObject.Find("Bottom Wall");
 
         GenerateGrid();
     }
 
     private void GenerateGrid()
     {
         for (int x = 0; x < gridWidth; x++)
         {
             for (int z = 0; z < gridHeight; z++)
             {
                 GameObject block = Instantiate(gridBlock, Vector3.zero, gridBlock.transform.rotation) as GameObject;
                 block.transform.parent = transform;
                 block.transform.tag = "Block";
                 block.transform.localPosition = new Vector3(x, 0, z);
                 
                 if (block.transform.localPosition.x == 0)//TOP
                 {
                     positions.Add(block.transform.localPosition);
                     block.transform.parent = wallsParents[0].transform;
                     block.transform.name = "TopWall";
                     block.GetComponent<Renderer>().material.color = Color.red;
                 }
                 else if (block.transform.localPosition.z == 0)//LEFT
                 {
                     positions.Add(block.transform.localPosition);
                     block.transform.parent = wallsParents[1].transform;
                     block.transform.name = "LeftWall";
                     block.GetComponent<Renderer>().material.color = Color.blue;
                 }
                 else if (block.transform.localPosition.z == gridWidth - 1)//RIGHT
                 {
                     positions.Add(block.transform.localPosition);
                     block.transform.parent = wallsParents[2].transform;
                     block.transform.name = "RightWall";
                     block.GetComponent<Renderer>().material.color = Color.green;
                 }
 
                 else if (block.transform.localPosition.x == gridHeight - 1)//BOTTOM
                 {
                     positions.Add(block.transform.localPosition);
                     block.transform.parent = wallsParents[3].transform;
                     block.transform.name = "BottomWall";
                     block.GetComponent<Renderer>().material.color = Color.yellow;
                 }
 
                 blocks.Add(block);
             }
         }
     }
 }
 
grid3.jpg (292.4 kB)
Comment
Add comment · Show 4
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 Glurth · Nov 29, 2017 at 11:21 PM 1
Share

Looks like you want the length of each side to be 11 blocks, not 10. This way, each side including the corner square can be 10 blocks, without overlapping the corner of the "next" side.

avatar image Chocolade Glurth · Nov 29, 2017 at 11:27 PM 0
Share

How can i do it ? And then if i will want to get all this 40 colored blocks if the length is 11 i will get 40 blocks ? 4 walls 10 in each one should be 40. I guess i didn't understand yet. If you could show me please.

avatar image Glurth Chocolade · Nov 29, 2017 at 11:38 PM 0
Share
 public int gridWidth = 11;
 public int gridHeight = 11;

The issue is the overlap of the corner blocks. This is why you only see 36 = (4*10)blocks $$anonymous$$us 4 overlaps =36 colored blocks. So, if you use 11 for each side you get (11*4) blocks $$anonymous$$us 4 overlapping blocks = 40 colored blocks.

Show more comments

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

440 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 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 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 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 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 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 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How can I display two elements of two list? 1 Answer

How can i wait StartCoroutine to be finished in one script before starting a second script ? 1 Answer

How can I add/remove squad members from the FormationSquare when changing the number of members value ? 1 Answer

Menu object not responding 0 Answers

Scripting Help desperately needed. 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