Fix clearing cluster property
This commit is contained in:
parent
1a7ca0e298
commit
b7288b676a
@ -19,24 +19,21 @@ namespace NanoBrain.Unity {
|
|||||||
clusterView.initialized = false;
|
clusterView.initialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private const float padding = 4f;
|
private const float padding = 0f;//4f;
|
||||||
private const float elementHeight = 64f; // height reserved for the VisualElement
|
private const float graphHeight = 500f; // height reserved for the VisualElement
|
||||||
private static ClusterView clusterView;
|
private static ClusterView clusterView;
|
||||||
private static UnityEngine.Object selectedTarget;
|
private static UnityEngine.Object selectedTarget;
|
||||||
|
|
||||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
|
||||||
if (Cluster_Drawer.clusterView == null)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
float height = EditorGUIUtility.singleLineHeight + padding;
|
float height = EditorGUIUtility.singleLineHeight + padding;
|
||||||
|
if (Cluster_Drawer.clusterView == null)
|
||||||
|
// When no cluster is viewed
|
||||||
|
return height;
|
||||||
|
|
||||||
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
||||||
if (prefabProp.objectReferenceValue != null && Cluster_Drawer.clusterView.isOpen) {
|
if (prefabProp.objectReferenceValue != null && Cluster_Drawer.clusterView.isOpen) {
|
||||||
height += padding + elementHeight;
|
height = graphHeight;
|
||||||
height = 500;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
height = 18;
|
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,26 +53,33 @@ namespace NanoBrain.Unity {
|
|||||||
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
||||||
|
|
||||||
// Draw the object field on the top line
|
// Draw the object field on the top line
|
||||||
Rect fieldRect = new(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight);
|
Rect fieldRect = new(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight + padding);
|
||||||
EditorGUI.BeginChangeCheck();
|
EditorGUI.BeginChangeCheck();
|
||||||
EditorGUI.PropertyField(fieldRect, prefabProp, label);
|
EditorGUI.PropertyField(fieldRect, prefabProp, label);
|
||||||
|
// If a new prefab has been selected
|
||||||
if (EditorGUI.EndChangeCheck()) {
|
if (EditorGUI.EndChangeCheck()) {
|
||||||
|
// Ensure the changed prefab is changed in the object
|
||||||
prefabProp.serializedObject.ApplyModifiedProperties();
|
prefabProp.serializedObject.ApplyModifiedProperties();
|
||||||
ClusterPrefab clusterPrefab = prefabProp.objectReferenceValue as ClusterPrefab;
|
ClusterPrefab clusterPrefab = prefabProp.objectReferenceValue as ClusterPrefab;
|
||||||
if (clusterPrefab != null) {
|
if (clusterPrefab != null) {
|
||||||
Cluster newCluster = new(clusterPrefab);
|
Cluster newCluster = new(clusterPrefab);
|
||||||
|
SetInstance(property, newCluster);
|
||||||
SerializedObject serializedObject = property.serializedObject;
|
// SerializedObject serializedObject = property.serializedObject;
|
||||||
foreach (UnityEngine.Object targetObject in serializedObject.targetObjects) {
|
// foreach (UnityEngine.Object targetObject in serializedObject.targetObjects) {
|
||||||
var parent = SerializedPropertyUtility.GetParentObjectAndMember(targetObject, property.propertyPath, out var memberInfo, out int outIndex);
|
// object parent = SerializedPropertyUtility.GetParentObjectAndMember(targetObject, property.propertyPath, out var memberInfo, out int outIndex);
|
||||||
if (parent != null && memberInfo is FieldInfo fieldInfo) {
|
// if (parent != null && memberInfo is FieldInfo fieldInfo) {
|
||||||
fieldInfo.SetValue(parent, newCluster);
|
// fieldInfo.SetValue(parent, newCluster);
|
||||||
EditorUtility.SetDirty(targetObject);
|
// EditorUtility.SetDirty(targetObject);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// No prefab selected -> no cluster instance
|
||||||
|
SetInstance(property, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If a brain has been selected
|
||||||
if (prefabProp.objectReferenceValue != null) {
|
if (prefabProp.objectReferenceValue != null) {
|
||||||
// Graph is not shown when multi-editing
|
// Graph is not shown when multi-editing
|
||||||
if (property.serializedObject.targetObjects.Length == 1) {
|
if (property.serializedObject.targetObjects.Length == 1) {
|
||||||
@ -123,6 +127,17 @@ namespace NanoBrain.Unity {
|
|||||||
EditorGUI.EndProperty();
|
EditorGUI.EndProperty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void SetInstance(SerializedProperty property, Cluster newCluster) {
|
||||||
|
SerializedObject serializedObject = property.serializedObject;
|
||||||
|
foreach (UnityEngine.Object targetObject in serializedObject.targetObjects) {
|
||||||
|
object parent = SerializedPropertyUtility.GetParentObjectAndMember(targetObject, property.propertyPath, out var memberInfo, out int outIndex);
|
||||||
|
if (parent != null && memberInfo is FieldInfo fieldInfo) {
|
||||||
|
fieldInfo.SetValue(parent, newCluster);
|
||||||
|
EditorUtility.SetDirty(targetObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void OnSceneGUI(SceneView sceneView) {
|
private static void OnSceneGUI(SceneView sceneView) {
|
||||||
if (Application.isPlaying == false || selectedTarget == null)
|
if (Application.isPlaying == false || selectedTarget == null)
|
||||||
return;
|
return;
|
||||||
@ -155,7 +170,7 @@ namespace NanoBrain.Unity {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
foreach (ClusterView clusterView in ClusterView.clusterViews.Values)
|
foreach (ClusterView clusterView in ClusterView.clusterViews.Values)
|
||||||
clusterView.initialized = false;
|
clusterView.initialized = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -67,7 +67,6 @@ namespace NanoBrain {
|
|||||||
/// All nuclei in this cluster
|
/// All nuclei in this cluster
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SerializeReference]
|
[SerializeReference]
|
||||||
[HideInInspector]
|
|
||||||
public List<Nucleus> nuclei = new();
|
public List<Nucleus> nuclei = new();
|
||||||
|
|
||||||
#region Init
|
#region Init
|
||||||
@ -451,7 +450,7 @@ namespace NanoBrain {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual Neuron defaultOutput {//=> this.nuclei[0] as Nucleus;
|
public virtual Neuron defaultOutput {//=> this.nuclei[0] as Nucleus;
|
||||||
get {
|
get {
|
||||||
if (this.nuclei.Count > 0)
|
if (this.nuclei != null && this.nuclei.Count > 0)
|
||||||
return this.nuclei[0] as Neuron;
|
return this.nuclei[0] as Neuron;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -471,6 +470,9 @@ namespace NanoBrain {
|
|||||||
get {
|
get {
|
||||||
if (this._outputs == null || this._outputs.Count == 0) {
|
if (this._outputs == null || this._outputs.Count == 0) {
|
||||||
this._outputs = new();
|
this._outputs = new();
|
||||||
|
if (this.nuclei == null)
|
||||||
|
return this._outputs;
|
||||||
|
|
||||||
foreach (Nucleus nucleus in this.nuclei) {
|
foreach (Nucleus nucleus in this.nuclei) {
|
||||||
if (nucleus is Neuron neuron && neuron.receivers.Count == 0)
|
if (nucleus is Neuron neuron && neuron.receivers.Count == 0)
|
||||||
this._outputs.Add(neuron);
|
this._outputs.Add(neuron);
|
||||||
|
|||||||
@ -32,7 +32,10 @@ namespace NanoBrain {
|
|||||||
public Neuron(Cluster parent, string name) {
|
public Neuron(Cluster parent, string name) {
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.parent?.nuclei.Add(this);
|
if (this.parent != null) {
|
||||||
|
this.parent.nuclei ??= new();
|
||||||
|
this.parent.nuclei.Add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Serialization
|
#region Serialization
|
||||||
|
|||||||
@ -72,10 +72,350 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Vehicle 1
|
value: Vehicle 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: brain.name
|
||||||
|
value: Braitenberg 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
propertyPath: sensorRight
|
propertyPath: sensorRight
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: brain.prefab
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: c2d142058a073d6fdba2c8fab05834e3, type: 2}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: brain.version
|
||||||
|
value: 8
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: brain.instanceCount
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: brain.nuclei.Array.size
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'brain.nuclei.Array.data[0]'
|
||||||
|
value: 4201950310209421437
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'brain.nuclei.Array.data[1]'
|
||||||
|
value: 4201950310209421438
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421372]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Neuron
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421373]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Neuron
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421374]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Cluster
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421437]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Neuron
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421438]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Neuron
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421439]'
|
||||||
|
value: Assembly-CSharp NanoBrain.Cluster
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].name
|
||||||
|
value: Output
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].name
|
||||||
|
value: Sensor
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].name
|
||||||
|
value: Braitenberg 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].name
|
||||||
|
value: Output
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].name
|
||||||
|
value: Sensor
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].name
|
||||||
|
value: Braitenberg 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].bias.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].bias.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].bias.z
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].parent
|
||||||
|
value: 4201950310209421374
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].bias.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].bias.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].bias.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].parent
|
||||||
|
value: 4201950310209421374
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].parent
|
||||||
|
value: -2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].prefab
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: c2d142058a073d6fdba2c8fab05834e3, type: 2}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].bias.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].bias.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].bias.z
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].parent
|
||||||
|
value: 4201950310209421439
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].bias.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].bias.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].bias.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].parent
|
||||||
|
value: 4201950310209421439
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].parent
|
||||||
|
value: -2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].prefab
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: c2d142058a073d6fdba2c8fab05834e3, type: 2}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].version
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].version
|
||||||
|
value: 8
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372]._activator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].combinator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].lastUpdate
|
||||||
|
value: 96.72535
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373]._activator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].combinator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].lastUpdate
|
||||||
|
value: 96.72535
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437]._activator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].combinator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].lastUpdate
|
||||||
|
value: 305.44333
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438]._activator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].combinator
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].lastUpdate
|
||||||
|
value: 305.44333
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].breakOnUpdate
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372].persistOutput
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].breakOnUpdate
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373].persistOutput
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].instanceCount
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].breakOnUpdate
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437].persistOutput
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].breakOnUpdate
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438].persistOutput
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].instanceCount
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].nuclei.Array.size
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].nuclei.Array.size
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372]._synapses.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373]._synapses.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421374].instances.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421374].nuclei.Array.data[0]'
|
||||||
|
value: 4201950310209421372
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421374].nuclei.Array.data[1]'
|
||||||
|
value: 4201950310209421373
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437]._synapses.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438]._synapses.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421439].instances.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421439].nuclei.Array.data[0]'
|
||||||
|
value: 4201950310209421437
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421439].nuclei.Array.data[1]'
|
||||||
|
value: 4201950310209421438
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372]._receivers.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421373]._receivers.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437]._receivers.Array.size
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421438]._receivers.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421373]._receivers.Array.data[0]'
|
||||||
|
value: 4201950310209421372
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: 'managedReferences[4201950310209421438]._receivers.Array.data[0]'
|
||||||
|
value: 4201950310209421437
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372]._synapses.Array.data[0].neuron
|
||||||
|
value: 4201950310209421373
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421372]._synapses.Array.data[0].weight
|
||||||
|
value: 4
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437]._synapses.Array.data[0].neuron
|
||||||
|
value: 4201950310209421438
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8280937452374640854, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
propertyPath: managedReferences[4201950310209421437]._synapses.Array.data[0].weight
|
||||||
|
value: 4
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects:
|
m_RemovedGameObjects:
|
||||||
- {fileID: 449746320909641321, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
- {fileID: 449746320909641321, guid: c0398fc7a48853d47acb42e4e3498383, type: 3}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -2,8 +2,11 @@ using System.Collections;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace NanoBrain.Braitenberg {
|
namespace NanoBrain.Braitenberg {
|
||||||
using Unity;
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A non-directional sensor
|
||||||
|
/// </summary>
|
||||||
|
/// The sensor has a field of view, but the signal returned does not include a direction
|
||||||
public class Sensor : MonoBehaviour {
|
public class Sensor : MonoBehaviour {
|
||||||
[Tooltip("Max distance sensor detects anything")]
|
[Tooltip("Max distance sensor detects anything")]
|
||||||
public float sensorRange = 10f;
|
public float sensorRange = 10f;
|
||||||
@ -60,7 +63,7 @@ namespace NanoBrain.Braitenberg {
|
|||||||
float angle = Mathf.Lerp(-halfAngle, halfAngle, t);
|
float angle = Mathf.Lerp(-halfAngle, halfAngle, t);
|
||||||
Vector3 dir = Quaternion.AngleAxis(angle, this.transform.up) * this.transform.forward;
|
Vector3 dir = Quaternion.AngleAxis(angle, this.transform.up) * this.transform.forward;
|
||||||
|
|
||||||
Debug.DrawRay(this.transform.position, dir * sensorRange);
|
//Debug.DrawRay(this.transform.position, dir * sensorRange);
|
||||||
if (Physics.Raycast(this.transform.position, dir, out RaycastHit hit, sensorRange, senseLayer)) {
|
if (Physics.Raycast(this.transform.position, dir, out RaycastHit hit, sensorRange, senseLayer)) {
|
||||||
// Strength inversely proportional to distance, clamped to [0,1]
|
// Strength inversely proportional to distance, clamped to [0,1]
|
||||||
float str = 1f - (hit.distance / sensorRange);
|
float str = 1f - (hit.distance / sensorRange);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user