3 namespace droid.Runtime.Utilities.Misc.Procedural {
8 [SerializeField] GameObject[] _clones = null;
9 [SerializeField] Vector3 _initial_offset =
new Vector3(0, 0, 0);
10 [SerializeField] [Range(0, 99)]
int _num_clones = 0;
11 [SerializeField] Vector3 _offset =
new Vector3(20, 0, 20);
12 [SerializeField] GameObject _prefab = null;
14 void Start() { this.InstantiateClones(); }
16 void InstantiateClones() {
17 if (this._clones.Length > 0) {
22 this._clones =
new GameObject[this._num_clones];
24 var clone_coords = NeodroidUtilities.SnakeSpaceFillingGenerator(this._num_clones);
25 foreach (var c
in clone_coords) {
26 var go = Instantiate(this._prefab,
27 this._initial_offset + Vector3.Scale(
this._offset, c),
30 go.name = $
"{go.name}{clone_id}";
31 this._clones[clone_id] = go;
38 foreach (var clone
in this._clones) {
44 if (this._num_clones != this._clones.Length) {
45 this.InstantiateClones();