Score on returning with food
This commit is contained in:
parent
45511cd1b4
commit
22fe85478b
@ -188,16 +188,21 @@ namespace NanoBrain {
|
||||
else {
|
||||
uint instanceCount = 1;
|
||||
foreach (ExternalClusterData externalCluster in clusterData.clusters) {
|
||||
if (externalCluster.name == synapseData.clusterName)
|
||||
if (externalCluster.clusterName == synapseData.clusterName) {
|
||||
instanceCount = externalCluster.instanceCount;
|
||||
}
|
||||
if (this.nuclei.Find(nucleus => nucleus.name == synapseData.clusterName) is not Cluster extCluster)
|
||||
//extPrefab.name = externalCluster.name;
|
||||
if (this.nuclei.Find(nucleus => nucleus.name == synapseData.clusterName) is not Cluster extCluster) {
|
||||
extCluster = new(extPrefab, this, instanceCount);
|
||||
//extCluster.name = clusterData.name;
|
||||
extCluster.name = externalCluster.name;
|
||||
}
|
||||
Neuron extNeuron = extCluster.GetNeuron(synapseData.neuronName);
|
||||
Debug.Log("Add receiver for external");
|
||||
extNeuron.AddReceiver(receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Neuron sender = this.GetNeuron(synapseData.neuronName);
|
||||
sender?.AddReceiver(receiver, synapseData.weight, synapseData.trainable);
|
||||
@ -387,7 +392,7 @@ namespace NanoBrain {
|
||||
foreach (Synapse synapse in neuron.synapses) {
|
||||
if (synapse.trainable) {
|
||||
synapse.weight = (float)randomGenerator.NextDouble() * 2.0f - 1.0f;
|
||||
//Debug.Log($"{neuron.name}-{synapse.neuron.name} weight = {synapse.weight}");
|
||||
// Debug.Log($"{neuron.name}-{synapse.neuron.name} weight = {synapse.weight}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -934,10 +939,12 @@ namespace NanoBrain {
|
||||
[Serializable]
|
||||
public class ExternalClusterData {
|
||||
public string name;
|
||||
public string clusterName;
|
||||
public uint instanceCount;
|
||||
|
||||
public ExternalClusterData(Cluster cluster) {
|
||||
this.name = cluster.name;
|
||||
this.clusterName = cluster.prefab.name;
|
||||
this.instanceCount = (uint)cluster.instanceCount;
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,6 +180,8 @@ namespace NanoBrain {
|
||||
_outputValue = value;
|
||||
if (this.isFiring)
|
||||
WhenFiring?.Invoke();
|
||||
else
|
||||
WhenNotFiring?.Invoke();
|
||||
}
|
||||
}
|
||||
public float3 activation => outputValue;
|
||||
@ -228,6 +230,8 @@ namespace NanoBrain {
|
||||
/// </summary>
|
||||
public Action WhenFiring;
|
||||
|
||||
public Action WhenNotFiring;
|
||||
|
||||
/// <summary>
|
||||
/// When true, the value will not be reset after timeToSleep.
|
||||
/// </summary>
|
||||
|
||||
@ -120,6 +120,9 @@ namespace NanoBrain {
|
||||
public bool trainable;
|
||||
|
||||
public SynapseData(Synapse synapse) {
|
||||
if (synapse.neuron.parent.prefab != null)
|
||||
this.clusterName = synapse.neuron.parent.prefab.name;
|
||||
else
|
||||
this.clusterName = synapse.neuron.parent.name;
|
||||
this.neuronName = synapse.neuron.name;
|
||||
this.weight = synapse.weight;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user