// Use this for initialization void Start() { var scene = SceneManager.GetActiveScene(); var roots = scene.GetRootGameObjects(); foreach (var root in roots) { GazableObject.CreateFromColliders(root); } }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { var instance = (GameObject)Instantiate(prefab1, new Vector3(0, 0, maxDistance - instances.Count * step), Quaternion.identity); GazableObject.CreateFromColliders(instance); instances.Add(instance); } if (Input.GetKeyDown(KeyCode.Alpha2)) { var instance = (GameObject)Instantiate(prefab2, new Vector3(0, 0, maxDistance - instances.Count * step), Quaternion.identity); instances.Add(instance); } if (Input.GetKeyDown(KeyCode.Backspace) && instances.Count > 0) { Destroy(instances[instances.Count - 1]); instances.RemoveAt(instances.Count - 1); } }
// Use this for initialization void Start() { var cubeRoot = Mathf.CeilToInt(Mathf.Pow(countToInstantiate, 0.3333f)); var isEven = cubeRoot % 2 == 1; var halfRoot = cubeRoot / 2f; for (int i = 0; i < cubeRoot; ++i) { for (int j = 0; j < cubeRoot; ++j) { for (int k = 0; k < cubeRoot; ++k) { if (isEven && i == cubeRoot / 2 && j == cubeRoot / 2 && k == cubeRoot / 2) { continue; } var go = (GameObject)Instantiate(cubePrefab, transform); go.transform.position = amplitude * (new Vector3(i, j, k) - halfRoot * Vector3.one); } } } GazableObject.CreateFromColliders(gameObject); }