public override void OnInspectorGUI() { serializedObject.UpdateIfRequiredOrScript(); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Tile")); if (overrideTile.m_InstanceTile) { SerializedObject instanceTileSerializedObject = new SerializedObject(overrideTile.m_InstanceTile); overrideTile.m_InstanceTile.hideFlags = HideFlags.None; RuleTileEditor.DrawCustomFields(overrideTile.m_InstanceTile, instanceTileSerializedObject); overrideTile.m_InstanceTile.hideFlags = HideFlags.NotEditable; instanceTileSerializedObject.ApplyModifiedProperties(); } EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Advanced")); serializedObject.ApplyModifiedProperties(); if (EditorGUI.EndChangeCheck()) { UpdateInstanceTile(); SaveTile(); } if (!overrideTile.m_Advanced) { using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null)) { EditorGUI.BeginChangeCheck(); overrideTile.GetOverrides(m_Sprites); m_SpriteList.list = m_Sprites; m_SpriteList.DoLayoutList(); if (EditorGUI.EndChangeCheck()) { for (int i = 0; i < targets.Length; i++) { RuleOverrideTile tile = targets[i] as RuleOverrideTile; tile.ApplyOverrides(m_Sprites); SaveTile(); } } } } else { using (new EditorGUI.DisabledScope(overrideTile.m_Tile == null)) { overrideTile.GetOverrides(m_Rules); m_RuleList.list = m_Rules; m_RuleList.DoLayoutList(); } } }
public void DrawCustomFields() { if (overrideTile.m_InstanceTile) { SerializedObject instanceTileSerializedObject = new SerializedObject(overrideTile.m_InstanceTile); overrideTile.m_InstanceTile.hideFlags = HideFlags.None; RuleTileEditor.DrawCustomFields(overrideTile.m_InstanceTile, instanceTileSerializedObject); overrideTile.m_InstanceTile.hideFlags = HideFlags.NotEditable; instanceTileSerializedObject.ApplyModifiedProperties(); } }