Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [System.Serializable]
- public class Item : ScriptableObject
- {
- public Item instance;
- public int id;
- public string name;
- public Texture icons;
- public Material material;
- public Item()
- {
- instance = this;
- }
- public void Draw(List<Item> items)
- {
- GUILayout.BeginVertical("Box", GUILayout.Width(300), GUILayout.Height(100));
- id = EditorGUILayout.IntField(id);
- name = EditorGUILayout.TextField(name);
- icons = EditorGUILayout.ObjectField(icons, typeof(Texture), false) as Texture;
- material = EditorGUILayout.ObjectField(material, typeof(Material), false) as Material;
- string delete = "Delete";
- if (GUILayout.Button(delete, GUILayout.Height(25)))
- {
- GUI.FocusControl(delete);
- items.Add(this);
- }
- GUILayout.EndVertical();
- }
- }
- [System.Serializable]
- public class Items : ScriptableObject
- {
- [SerializeField]
- public List<Item> items;
- }
- // Tu jak tworze te obiekty
- void OnEnable()
- {
- items = AssetDatabase.LoadAssetAtPath<Items>("Assets/Items.asset");
- Debug.Log("Items: " + items);
- if (items == null)
- {
- items = CreateInstance<Items>();
- items.items = new List<Item>();
- AssetDatabase.CreateAsset(items, PATH);
- AssetDatabase.SaveAssets();
- EditorUtility.SetDirty(items);
- }
- }
- private void AddItem()
- {
- Item item = ScriptableObject.CreateInstance<Item>();
- items.items.Add(item);
- AssetDatabase.AddObjectToAsset(item, items);
- AssetDatabase.SaveAssets();
- EditorUtility.SetDirty(items);
- EditorUtility.SetDirty(item);
- AssetDatabase.Refresh();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement