Fix clearing cluster property
This commit is contained in:
parent
1a7ca0e298
commit
b7288b676a
@ -19,24 +19,21 @@ namespace NanoBrain.Unity {
|
||||
clusterView.initialized = false;
|
||||
}
|
||||
|
||||
private const float padding = 4f;
|
||||
private const float elementHeight = 64f; // height reserved for the VisualElement
|
||||
private const float padding = 0f;//4f;
|
||||
private const float graphHeight = 500f; // height reserved for the VisualElement
|
||||
private static ClusterView clusterView;
|
||||
private static UnityEngine.Object selectedTarget;
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
|
||||
if (Cluster_Drawer.clusterView == null)
|
||||
return 0;
|
||||
|
||||
float height = EditorGUIUtility.singleLineHeight + padding;
|
||||
if (Cluster_Drawer.clusterView == null)
|
||||
// When no cluster is viewed
|
||||
return height;
|
||||
|
||||
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
||||
if (prefabProp.objectReferenceValue != null && Cluster_Drawer.clusterView.isOpen) {
|
||||
height += padding + elementHeight;
|
||||
height = 500;
|
||||
height = graphHeight;
|
||||
}
|
||||
else
|
||||
height = 18;
|
||||
return height;
|
||||
}
|
||||
|
||||
@ -56,26 +53,33 @@ namespace NanoBrain.Unity {
|
||||
SerializedProperty prefabProp = property.FindPropertyRelative(nameof(Cluster.prefab));
|
||||
|
||||
// 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.PropertyField(fieldRect, prefabProp, label);
|
||||
// If a new prefab has been selected
|
||||
if (EditorGUI.EndChangeCheck()) {
|
||||
// Ensure the changed prefab is changed in the object
|
||||
prefabProp.serializedObject.ApplyModifiedProperties();
|
||||
ClusterPrefab clusterPrefab = prefabProp.objectReferenceValue as ClusterPrefab;
|
||||
if (clusterPrefab != null) {
|
||||
Cluster newCluster = new(clusterPrefab);
|
||||
|
||||
SerializedObject serializedObject = property.serializedObject;
|
||||
foreach (UnityEngine.Object targetObject in serializedObject.targetObjects) {
|
||||
var 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);
|
||||
}
|
||||
SetInstance(property, 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);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
else {
|
||||
// No prefab selected -> no cluster instance
|
||||
SetInstance(property, null);
|
||||
}
|
||||
}
|
||||
|
||||
// If a brain has been selected
|
||||
if (prefabProp.objectReferenceValue != null) {
|
||||
// Graph is not shown when multi-editing
|
||||
if (property.serializedObject.targetObjects.Length == 1) {
|
||||
@ -123,6 +127,17 @@ namespace NanoBrain.Unity {
|
||||
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) {
|
||||
if (Application.isPlaying == false || selectedTarget == null)
|
||||
return;
|
||||
|
||||
@ -67,7 +67,6 @@ namespace NanoBrain {
|
||||
/// All nuclei in this cluster
|
||||
/// </summary>
|
||||
[SerializeReference]
|
||||
[HideInInspector]
|
||||
public List<Nucleus> nuclei = new();
|
||||
|
||||
#region Init
|
||||
@ -451,7 +450,7 @@ namespace NanoBrain {
|
||||
/// </summary>
|
||||
public virtual Neuron defaultOutput {//=> this.nuclei[0] as Nucleus;
|
||||
get {
|
||||
if (this.nuclei.Count > 0)
|
||||
if (this.nuclei != null && this.nuclei.Count > 0)
|
||||
return this.nuclei[0] as Neuron;
|
||||
return null;
|
||||
}
|
||||
@ -471,6 +470,9 @@ namespace NanoBrain {
|
||||
get {
|
||||
if (this._outputs == null || this._outputs.Count == 0) {
|
||||
this._outputs = new();
|
||||
if (this.nuclei == null)
|
||||
return this._outputs;
|
||||
|
||||
foreach (Nucleus nucleus in this.nuclei) {
|
||||
if (nucleus is Neuron neuron && neuron.receivers.Count == 0)
|
||||
this._outputs.Add(neuron);
|
||||
|
||||
@ -32,7 +32,10 @@ namespace NanoBrain {
|
||||
public Neuron(Cluster parent, string name) {
|
||||
this.parent = parent;
|
||||
this.name = name;
|
||||
this.parent?.nuclei.Add(this);
|
||||
if (this.parent != null) {
|
||||
this.parent.nuclei ??= new();
|
||||
this.parent.nuclei.Add(this);
|
||||
}
|
||||
}
|
||||
|
||||
#region Serialization
|
||||
|
||||
@ -72,10 +72,350 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Vehicle 1
|
||||
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}
|
||||
propertyPath: sensorRight
|
||||
value:
|
||||
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_RemovedGameObjects:
|
||||
- {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;
|
||||
|
||||
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 {
|
||||
[Tooltip("Max distance sensor detects anything")]
|
||||
public float sensorRange = 10f;
|
||||
@ -60,7 +63,7 @@ namespace NanoBrain.Braitenberg {
|
||||
float angle = Mathf.Lerp(-halfAngle, halfAngle, t);
|
||||
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)) {
|
||||
// Strength inversely proportional to distance, clamped to [0,1]
|
||||
float str = 1f - (hit.distance / sensorRange);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user