using System.Collections.Generic; using System.ComponentModel; using SLZ.Marrow; using UnityEngine; using SLZ.Marrow.Warehouse; namespace UnityEditor.AddressableAssets.Settings.GroupSchemas { [DisplayName("Pallet Settings")] public class PalletGroupSchema : AddressableAssetGroupSchema { [SerializeField] Pallet _pallet; public Pallet Pallet { get { return _pallet; } set { _pallet = value; SetDirty(true); } } [SerializeField] MarrowSettings _marrowGame; public MarrowSettings MarrowGame { get { return _marrowGame; } set { _marrowGame = value; SetDirty(true); } } public override void OnGUIMultiple(List otherSchemas) { var so = new SerializedObject(this); SerializedProperty prop; prop = so.FindProperty("_pallet"); ShowMixedValue(prop, otherSchemas, typeof(Pallet), "_pallet"); EditorGUI.BeginChangeCheck(); Pallet newPallet = (Pallet)EditorGUILayout.ObjectField(prop.displayName, Pallet, typeof(Pallet), false); if (EditorGUI.EndChangeCheck()) { Pallet = newPallet; foreach (var s in otherSchemas) (s as PalletGroupSchema).Pallet = Pallet; } prop = so.FindProperty("_marrowGame"); ShowMixedValue(prop, otherSchemas, typeof(Pallet), "_marrowGame"); EditorGUI.BeginChangeCheck(); MarrowSettings newMarrowGame = (MarrowSettings)EditorGUILayout.ObjectField(prop.displayName, MarrowGame, typeof(MarrowSettings), false); if (EditorGUI.EndChangeCheck()) { MarrowGame = newMarrowGame; foreach (var s in otherSchemas) (s as PalletGroupSchema).MarrowGame = MarrowGame; } EditorGUI.showMixedValue = false; so.ApplyModifiedProperties(); } } }