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;
    }
Exemple #3
0
    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);
 }