Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. [ExecuteInEditMode]
  6. public class GameObjectInfo : MonoBehaviour
  7. {
  8. [System.Serializable]
  9. public class GameObjectstInfo
  10. {
  11. public GameObject parent;
  12. public int childrenCount;
  13. public List<Transform> children = new List<Transform>();
  14. }
  15.  
  16. public string gameObjectsInfo = "";
  17. public GameObjectstInfo[] objectsinfo;
  18.  
  19. // Start is called before the first frame update
  20. void Start()
  21. {
  22. Search();
  23. }
  24.  
  25. public void Search()
  26. {
  27. if (gameObjectsInfo != "")
  28. {
  29. var foundObjects = FindGameObjectsWithName(gameObjectsInfo);
  30. objectsinfo = new GameObjectstInfo[foundObjects.Length];
  31.  
  32. for (int i = 0; i < foundObjects.Length; i++)
  33. {
  34. objectsinfo[i] = new GameObjectstInfo();
  35. objectsinfo[i].parent = foundObjects[i];
  36.  
  37. foreach (Transform child in foundObjects[i].transform)
  38. {
  39. objectsinfo[i].childrenCount += 1;
  40. objectsinfo[i].children.Add(child);
  41. }
  42. }
  43. }
  44. }
  45.  
  46. GameObject[] FindGameObjectsWithName(string nameIt)
  47. {
  48. int it = 0;
  49. GameObject[] objArr;
  50. bool b = false;
  51. while (!b)
  52. {
  53. if (GameObject.Find(nameIt))
  54. {
  55. GameObject.Find(nameIt).name = nameIt + it;
  56. it++;
  57. }
  58. else
  59. {
  60. b = true;
  61. }
  62. }
  63.  
  64. objArr = new GameObject[it];
  65. while (it > 0)
  66. {
  67. it--;
  68. objArr[it] = GameObject.Find(nameIt + it);
  69. objArr[it].name = nameIt;
  70. }
  71.  
  72. return objArr;
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement