Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Voting for the Unity Awards are OPEN! We’re looking to celebrate creators across games, industry, film, and many more categories. Cast your vote now for all categories
    Dismiss Notice
  3. Dismiss Notice

need idea to reduce size of my code

Discussion in '2D' started by PersianKiller, Jul 15, 2018.

  1. PersianKiller

    PersianKiller

    Joined:
    Jul 16, 2017
    Posts:
    114
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. public class test : MonoBehaviour {
    5.     void Start () {
    6.         var a1 = new GameObject ();
    7.         var a2 = new GameObject ();
    8.         a2.transform.parent = a1.transform;
    9.         var a3 = new GameObject ();
    10.         a3.transform.parent = a2.transform;
    11.         var a4 = new GameObject ();
    12.         a4.transform.parent = a3.transform;
    13.         var a5 = new GameObject ();
    14.         a5.transform.parent = a1.transform;
    15.         var a6 = new GameObject ();
    16.          a6.transform.parent = a5.transform;
    17.         var a7 = new GameObject ();
    18.         a7.transform.parent = a6.transform;
    19.  
    20.         a1.AddComponent<SpriteRenderer> ();
    21.         a2.AddComponent<SpriteRenderer> ();
    22.         a3.AddComponent<SpriteRenderer> ();
    23.         a4.AddComponent<SpriteRenderer> ();
    24.         a5.AddComponent<SpriteRenderer> ();
    25.         a6.AddComponent<SpriteRenderer> ();
    26.         a7.AddComponent<SpriteRenderer> ();
    27.     }
    28. }

    the problem is here that i have to add SpriteRenderer to all objects one by one,it would be very better if i could put them into an array then use a for loop to add SpriteRenderer , but i don't know how,can some one help me?(i want it to be a local thing)
     
  2. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,419
    Code (CSharp):
    1. var list = new List<GameObject>();
    2.  
    3. for (int n=0; n<6; ++n)
    4. {
    5.     var go = new GameObject();
    6.     go.AddComponent<SpriteRenderer>();
    7.  
    8.     list.Add(go);
    9. }
    The code creates 6 GameObject's, adds a SpriteRenderer Component and then adds the GameObject to a list. You still need to assign the parent in order to match the bahavior of the code you posted.
     
    PersianKiller likes this.