public void AddGene(GeneticBehavior gene) { int oldCount = (this.genes != null) ? this.genes.Length : 0; GeneticBehavior[] newGenes = new GeneticBehavior[oldCount + 1]; for (int i = 0; i < oldCount; i++) { newGenes[i] = this.genes[i]; } newGenes[oldCount] = gene; this.genes = newGenes; }
public void RemoveGene(int index) { GeneticBehavior[] newGenes = new GeneticBehavior[genes.Length - 1]; int j = 0; for (int i = 0; i < genes.Length; i++) { if (i != index) { newGenes[j] = genes[i]; j++; } } genes = newGenes; }
private void LoadScriptableObjectByName(PreferencesData data) { Debug.Log("NewSession, load from name"); FlockBehavior[] behaviors = new FlockBehavior[data.behaviorsName.Count]; for (int i = 0; i < data.behaviorsName.Count; i++) { behaviors[i] = Resources.Load <FlockBehavior>("UIPrefab" + Path.DirectorySeparatorChar + "BoidsBehaviors" + Path.DirectorySeparatorChar + data.behaviorsName[i]); } data.CompositeBehavior.behaviors = behaviors; data.CompositeBehavior.weights = data.weigth.ToArray(); GeneticBehavior[] genes = new GeneticBehavior[data.genesName.Count]; for (int i = 0; i < data.genesName.Count; i++) { genes[i] = Resources.Load <GeneticBehavior>("UIPrefab" + Path.DirectorySeparatorChar + "Genetic" + Path.DirectorySeparatorChar + data.genesName[i]); } data.compositeGene.genes = genes; }
public void AddGene(GeneticBehavior gene) { compositeGene.AddGene(gene); UpdateScriptableObjectName(); OnGenesChange?.Invoke(compositeGene); }