• 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 haimmoshe · Sep 06, 2017 at 01:58 PM · c#scripting problemscript.

How can i characters in triangle formation with equal spaces between each character ?

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class SquadFormation : MonoBehaviour
 {
     enum Formation
     {
         Square, Circle, Triangle
     }
 
     public Transform squadMemeber;
     public int columns = 4;
     public int space = 10;
     public int numObjects = 20;
     public float yOffset = 1;
 
     private Formation formation;
 
     // Use this for initialization
     void Start()
     {
         formation = Formation.Square;
         ChangeFormation();
     }
 
     // Update is called once per frame
     void Update()
     {
         if (Input.GetKeyDown(KeyCode.F))
         {
             GameObject[] objects = GameObject.FindGameObjectsWithTag("Squad Member");
             if (objects.Length > 0)
             {
                 foreach (GameObject obj in objects)
                     Destroy(obj);
             }
 
             ChangeFormation();
         }
     }
 
     private void ChangeFormation()
     {
         switch (formation)
         {
             case Formation.Square:
 
                 for (int i = 0; i < 23; i++)
                 {
                     Transform go = Instantiate(squadMemeber);
                     Vector3 pos = FormationSquare(i);
                     go.position = new Vector3(transform.position.x + pos.x, 0, transform.position.y + pos.y);
                     go.Rotate(new Vector3(0, -90, 0));
                     go.tag = "Squad Member";
                 }
                 formation = Formation.Circle;
                 break;
 
             case Formation.Circle:
 
                 Vector3 center = transform.position;
                 for (int i = 0; i < numObjects; i++)
                 {
                     Vector3 pos = RandomCircle(center, 5.0f);
                     var rot = Quaternion.LookRotation(center - pos);
                     pos.y = Terrain.activeTerrain.SampleHeight(pos);
                     pos.y = pos.y + yOffset;
                     Transform insObj = Instantiate(squadMemeber, pos, rot);
                     insObj.rotation = rot;
                     insObj.tag = "Squad Member";
                 }
                 formation = Formation.Triangle;
                 break;
             case Formation.Triangle:
 
                 for (int x = 0; x < numObjects; x++)
                 {
                     for (int y = x; y < 2 * (numObjects - x) - 1; y++)
                     {
                         Vector3 position = new Vector3(x, y);
                         Transform go = Instantiate(squadMemeber, position, squadMemeber.rotation);
                         go.tag = "Squad Member";
                     }
                 }
                 formation = Formation.Square;
                 break;
         }
     }
 
     Vector2 FormationSquare(int index) // call this func for all your objects
     {
         float posX = (index % columns) * space;
         float posY = (index / columns) * space;
         return new Vector2(posX, posY);
     }
 
     Vector3 RandomCircle(Vector3 center, float radius)
     {
         float ang = Random.value * 360;
         Vector3 pos;
         pos.x = center.x + radius * Mathf.Sin(ang * Mathf.Deg2Rad);
         pos.z = center.z + radius * Mathf.Cos(ang * Mathf.Deg2Rad);
         pos.y = center.y;
         return pos;
     }
 }
 

When it's making the Square formation it's making equal spaces between each character.

But how do i make equal space between each character also in the circle formation and the triangle formation ? Why the triangle formation Instantiate many characters if i have for example 20 character it's Instantiating much more then 20 and also put them all as triangle filled triangle and in the air. I want it to be in triangle shape not filled triangle and on the ground not in the air.

This is the triangle result:

Triangle strange scary

triangle001.jpg (266.0 kB)
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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

397 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

Related Questions

How can i rotate a transform using lerp but keep the nose in same direction/angle on x ? 1 Answer

To pass a variable between scenes should I use scriptableobject or static ? 1 Answer

How can i prevent from mouse to collide with thirdpersoncontroller ? 0 Answers

How can i lock the mouse cursor in the middle of the screen ? 1 Answer

Why InputField don't have the property text ? 2 Answers


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