|
using UnityEditor; |
|
using Unity.MLAgents.Integrations.Match3; |
|
namespace Unity.MLAgents.Editor |
|
{ |
|
[CustomEditor(typeof(Match3ActuatorComponent), editorForChildClasses: true)] |
|
[CanEditMultipleObjects] |
|
internal class Match3ActuatorComponentEditor : UnityEditor.Editor |
|
{ |
|
public override void OnInspectorGUI() |
|
{ |
|
var so = serializedObject; |
|
so.Update(); |
|
|
|
var component = (Match3ActuatorComponent)target; |
|
var board = component.GetComponent<AbstractBoard>(); |
|
if (board == null) |
|
{ |
|
EditorGUILayout.HelpBox("You must provide an implementation of an AbstractBoard.", MessageType.Warning); |
|
return; |
|
} |
|
|
|
|
|
EditorGUI.BeginChangeCheck(); |
|
|
|
EditorGUI.BeginDisabledGroup(!EditorUtilities.CanUpdateModelProperties()); |
|
{ |
|
EditorGUILayout.PropertyField(so.FindProperty("m_ActuatorName"), true); |
|
EditorGUILayout.PropertyField(so.FindProperty("m_RandomSeed"), true); |
|
} |
|
EditorGUI.EndDisabledGroup(); |
|
EditorGUILayout.PropertyField(so.FindProperty("m_ForceHeuristic"), true); |
|
|
|
var requireSensorUpdate = EditorGUI.EndChangeCheck(); |
|
so.ApplyModifiedProperties(); |
|
|
|
if (requireSensorUpdate) |
|
{ |
|
UpdateActuator(); |
|
} |
|
} |
|
|
|
void UpdateActuator() |
|
{ |
|
} |
|
} |
|
} |
|
|