コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
 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();
     }
 }