11using UnityEngine ;
22using UnityEditor ;
33using Barracuda ;
4+ using MLAgents . Sensor ;
45
56namespace MLAgents
67{
@@ -11,41 +12,41 @@ This code is meant to modify the behavior of the inspector on Agent Components.
1112 [ CanEditMultipleObjects ]
1213 public class BehaviorParametersEditor : Editor
1314 {
14- private const float k_TimeBetweenModelReloads = 2f ;
15+ const float k_TimeBetweenModelReloads = 2f ;
1516 // Time since the last reload of the model
16- private float m_TimeSinceModelReload ;
17+ float m_TimeSinceModelReload ;
1718 // Whether or not the model needs to be reloaded
18- private bool m_RequireReload ;
19+ bool m_RequireReload ;
1920
2021 public override void OnInspectorGUI ( )
2122 {
22- var serializedObject = base . serializedObject ;
23- serializedObject . Update ( ) ;
23+ var so = serializedObject ;
24+ so . Update ( ) ;
2425
2526 // Drawing the Behavior Parameters
2627 EditorGUI . BeginChangeCheck ( ) ;
2728 EditorGUI . indentLevel ++ ;
28- EditorGUILayout . PropertyField ( serializedObject . FindProperty ( "m_BehaviorName" ) ) ;
29- EditorGUILayout . PropertyField ( serializedObject . FindProperty ( "m_BrainParameters" ) , true ) ;
30- EditorGUILayout . PropertyField ( serializedObject . FindProperty ( "m_Model" ) , true ) ;
29+ EditorGUILayout . PropertyField ( so . FindProperty ( "m_BehaviorName" ) ) ;
30+ EditorGUILayout . PropertyField ( so . FindProperty ( "m_BrainParameters" ) , true ) ;
31+ EditorGUILayout . PropertyField ( so . FindProperty ( "m_Model" ) , true ) ;
3132 EditorGUI . indentLevel ++ ;
32- EditorGUILayout . PropertyField ( serializedObject . FindProperty ( "m_InferenceDevice" ) , true ) ;
33+ EditorGUILayout . PropertyField ( so . FindProperty ( "m_InferenceDevice" ) , true ) ;
3334 EditorGUI . indentLevel -- ;
34- EditorGUILayout . PropertyField ( serializedObject . FindProperty ( "m_UseHeuristic " ) ) ;
35+ EditorGUILayout . PropertyField ( so . FindProperty ( "m_BehaviorType " ) ) ;
3536 // EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Heuristic"), true);
3637 EditorGUI . indentLevel -- ;
3738 if ( EditorGUI . EndChangeCheck ( ) )
3839 {
3940 m_RequireReload = true ;
4041 }
4142 DisplayFailedModelChecks ( ) ;
42- serializedObject . ApplyModifiedProperties ( ) ;
43+ so . ApplyModifiedProperties ( ) ;
4344 }
4445
4546 /// <summary>
4647 /// Must be called within OnEditorGUI()
4748 /// </summary>
48- private void DisplayFailedModelChecks ( )
49+ void DisplayFailedModelChecks ( )
4950 {
5051 if ( m_RequireReload && m_TimeSinceModelReload > k_TimeBetweenModelReloads )
5152 {
@@ -56,15 +57,17 @@ private void DisplayFailedModelChecks()
5657 D . logEnabled = false ;
5758 Model barracudaModel = null ;
5859 var model = ( NNModel ) serializedObject . FindProperty ( "m_Model" ) . objectReferenceValue ;
59- var brainParameters = ( ( BehaviorParameters ) target ) . brainParameters ;
60+ var behaviorParameters = ( BehaviorParameters ) target ;
61+ var sensorComponents = behaviorParameters . GetComponents < SensorComponent > ( ) ;
62+ var brainParameters = behaviorParameters . brainParameters ;
6063 if ( model != null )
6164 {
6265 barracudaModel = ModelLoader . Load ( model . Value ) ;
6366 }
6467 if ( brainParameters != null )
6568 {
6669 var failedChecks = InferenceBrain . BarracudaModelParamLoader . CheckModel (
67- barracudaModel , brainParameters ) ;
70+ barracudaModel , brainParameters , sensorComponents ) ;
6871 foreach ( var check in failedChecks )
6972 {
7073 if ( check != null )
0 commit comments