diff --git a/Editor/ClusterViewer.cs b/Editor/ClusterViewer.cs index 213c25a..dbc6984 100644 --- a/Editor/ClusterViewer.cs +++ b/Editor/ClusterViewer.cs @@ -332,9 +332,11 @@ namespace NanoBrain { drawnArrays.Add(clusterReceptor.nucleiArray); } // Oops... - // else if (synapse.neuron is Cluster cluster && cluster.clusterArray != null) { - - // } + else if (synapse.neuron.parent is Cluster cluster && cluster.clusterArray != null) { + if (drawnArrays.Contains(cluster.clusterArray.clusters)) + continue; + drawnArrays.Add(cluster.clusterArray.clusters); + } if (synapse.neuron is Neuron synapseNeuron) { float value = synapseNeuron.outputMagnitude * synapse.weight; // Debug.Log($"{synapse.nucleus.name}: {value} {length(synapse.nucleus.outputValue)} {synapse.weight}"); diff --git a/Runtime/Scripts/Core/ClusterArray.cs b/Runtime/Scripts/Core/ClusterArray.cs index 58a9e14..490c216 100644 --- a/Runtime/Scripts/Core/ClusterArray.cs +++ b/Runtime/Scripts/Core/ClusterArray.cs @@ -66,9 +66,11 @@ namespace NanoBrain { for (int i = 0; i < this.clusters.Length; i++) newClusters[i] = this.clusters[i]; - Cluster cluster = this.clusters[0]; - newClusters[newLength - 1] = cluster.Clone(prefab) as Cluster; - newClusters[newLength - 1].name = $"{baseName}: {newLength - 1}"; + Cluster sourceCluster = this.clusters[0]; + Cluster newCluster = sourceCluster.Clone(prefab) as Cluster; + newCluster.name = $"{baseName}: {newLength - 1}"; + newCluster.clusterArray = this; + newClusters[newLength - 1] = newCluster; this.clusters = newClusters; }