Array[] of children of a child
Hello comm unity ))) I've got some problems with array. So I got the code: using UnityEngine; using UnityEngine.UI; using System.Collections;
 public class SearchChildren : MonoBehaviour {
 
     public Text[]        countFinder;
     public GameObject[] counter;
 
     void Start ()        
     {
         counter = new GameObject[transform.childCount];
         for (int i = 0; i < transform.childCount; i++)
         {
             counter[i] = transform.GetChild(i).gameObject;          
                         
             countFinder[i] = counter[i].transform.FindChild("Count").GetComponent<Text>();
             Debug.Log(countFinder[i]);
 
         }
         
     }
 
 }
 
So, countFinder[i] = counter[i].transform.FindChild("Count").GetComponent(); keep saying that Array index is out of range. What am I doing wrong?
first explain do you have many child's in this game object & each child have a text component
I've got children with different names, but all of them have same named child "Count" with text component. I want to make Array with all that "Count" children and sum them 2gether)
Answer by Losteone · May 04, 2016 at 11:54 AM
 using UnityEngine;
 using UnityEngine.UI;
 using System.Collections;
 using System.Text.RegularExpressions;
 using System.Collections.Generic;
 
 public class SearchChildren : MonoBehaviour {
 
     Text         textFinder;
     string      countFinder;
     string  countTextFinder;
     GameObject[]    counter;
     float               sum;
     float countFinderNumber;
 
     List<string> textFinderArr = new List<string>();
 
     public void CountResults()
     {
         sum = 0;
         counter = new GameObject[transform.childCount];
         for (int i = 0; i < transform.childCount; i++)
         {
             counter[i] =                                               transform.GetChild(i).gameObject;
             textFinderArr.Insert(i, counter[i].transform.FindChild("Result").GetComponent<Text>().text);
             countFinder =                                   Regex.Match(textFinderArr[i], @"\d+").Value;
             countFinderNumber =                                                float.Parse(countFinder);
             sum +=                                                                    countFinderNumber;
 
         }
         Debug.Log(sum);
     }
 
 }
 
Answer by Ali-hatem · May 02, 2016 at 07:15 PM
ok i have made a simple way i have tagged the Count objets with the same tag & then :
 float sum;
 float  convert0,convert1,convert2;
 GameObject [] child;
 List<Text> counttext = new List<Text>();
 void Start(){
     child = GameObject.FindGameObjectsWithTag ("CountTag");
     for(int i =0; i<child.Length; i++){
         counttext.Add (child [i].GetComponentInChildren<Text> ());
     }
     convert0 = float.Parse (counttext [0].text);
     convert1 = float.Parse (counttext [1].text);
     convert2 = float.Parse (counttext [2].text);
     sum = convert0+convert1+convert2;
     print (sum);
 }
But I don't want to change text, I just get it, pares it to float and then need to sum it up.
you can do what ever you want all the texts in counttext List but i will edited for you
Answer by Losteone · May 03, 2016 at 02:12 PM
I almost done this, and I'm close)
 using UnityEngine;
 using UnityEngine.UI;
 using System.Collections;
 using System.Text.RegularExpressions;
 using System.Collections.Generic;
 
 public class SearchChildren : MonoBehaviour {
 
     Text textFinder;
     string   countFinder;
     string countTextFinder;
     GameObject[] counter;
     float sum;
     float countFinderNumber;
     List<string> textFinderArr = new List<string>();
 
 
     public void countResults ()
     {
         counter = new GameObject[transform.childCount];
         for (int i = 0; i < transform.childCount; i++)
         {
             counter[i] = transform.GetChild(i).gameObject;
 
             textFinderArr.Add(counter[i].transform.FindChild("Result").GetComponent<Text>().text);
 
             countFinder = Regex.Match(textFinderArr[i], @"\d+").Value;
             countFinderNumber = float.Parse(countFinder);
             sum += countFinderNumber;
         }
     }
 }
 
But now, textFinderArr gets only 1 object, WHY???
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                