I am glad to announce the release of Easy Editor, and I would love to get some feedback from you on how the tool could be improved and fit your needs better.
What is Easy Editor :
Easy Editor is a handy framework that allows you to drastically decrease the time you spend to create editor interfaces for your MonoBehaviour and ScriptableObject with near to zero coding time.
EasyEditor is a very light framework and does not reimplement Unity UI or serialization system. It just provides the right architecture to use Unity editor UI and serialization features (PropertyDrawers, SerializedObject, Editor script …) in the most efficient way. This ensures that any new feature related to the editor provided by Unity can be easily integrated in your project making its maintenance much easier.
Key features :
• Organize your different inspector properties into groups.
• Use attributes to add a group description, add a comment under your properties, layout them, add a button to trigger functions.
• Insert UI elements inside any group at any position in the inspector.
• Create buttons in the inspector as fast as lightning by adding a simple attribute [Inspector] on top of any functions, no matter it is in your monobehaviour or in the editor script.
• Show or hide fields or group of fields with one line of code to create interactive interfaces.
• Get any asset and folder path just by dragging it in the inspector on a string field.
• Display information messages under specific conditions like : only in play mode, only if the field is null and required etc…
• All these features apply for custom class and structure (as long as they are not inside a list, work in progress).
• Create awesome reorderable arrays where elements can be dragged and inserted at any position in the list (feature provided by Rotorz).
• Fully compatible with Unity built-in property drawer.
• Fully compatible with Unity classic way of writing editor script : you can easily render pieces of editor script between any properties already rendered by default in the inspector.
• A robust framework, easy to understand and well documented that you can extend to meet your needs.
Now, I would like to know if such a tool meets your interest and if there is any more feature you would be interested in.
With Unity Engine types like Sprites and Texture2ds, any chance of giving preview box of the resource in question and with Sounds say a way to preview play?
[edit] with Scriptableobjects can’t I create a button the save out say a custom list class including dictionaries as a scriptableobject object?
It is not in the roadmap for the moment, but this can definitely be added to the framework. There is so many things that can be added that sometime it is hard to prioritize them :). I will stuck to the roadmap and keep in mind your suggestions for the future.
Also, keep also in mind that property drawers works with Easy Editor. So if you find a property drawer on the net that can display the texture the way you want, or display a button next to a soundclip to preview it, just insert it in your project and it should work with EE.
I am not sure to understand this. Could you describe an example ?
I think what I meant is with your Asset I can easily create buttons in my custom inspector to say create a scriptableobject (with that script in place) from say a list I’ve been working on and adding to…
Since making the last post I’ve come to realise that Unity can’t yet serialise dictionaries. …
I have in my project used Rotorz Tile System plugin and because you have used Rotorz ReorderableList, then is collision with AssemblyInfo.cs in Tools folder. How can I fix it?
Just bought Easy Editor. It seems like a great lightweight asset to fill the gap in some of the attributes I was having trouble implementing on my own. Really like the options you’ve included like the layout groups, conditional field display/hide.
I’m having a strange issue with Color32 fields disappearing after simply right-clicking a script to “Customize Interface”. Normally Unity displays a color picker for Color32 fields, but it’s not showing up with EE’s custom editor. If I change the type to Color, then it displays again. Can you confirm this?
Also, I noticed in the documentation that the InlineClassRenderer doesn’t work inside of Lists, presumably because of the Rotorz list. Do you know of any possibly way to customize this? For example, adjusting label widths, or somehow getting horizontal groups like you demonstrate. Thanks.
It is solved. You can send your invoice at the support email : egnare.studio@gmail.com it will be a pleasure to send you the last version (with some nice other features)
Indeed, InlineClassRenderer is rendered with unity automatic layout system EditorGUILayout which is not supported inside PropertyDrawers. I am using Rotorz list and its ability to render what propertydrawers can renders, so here it does not support InlineClassRenderer yet.
For the moment, the serializable class is displayed in the list as Unity would render it and you have no control on the layout. I am looking for a solution and hope to find one in a near future.
Yes it has. [Visibility(id=“theEnumFieldName”, value = anEnumValue)]. Enum are value type and cannot be null.
I can add the possibility to display a field based on the result of a method, then you could display it only if a camera is assigned, or if an object with a specific tag is used, or only if the editor is in Play mode, etc…
Hi there. I’ve been working with the version you sent with the Color32 fix. I have a couple of questions:
Is it possible to have reoderable lists show up within reorderable lists (using a wrapper class because of the way Unity’s serialization works with nested lists)?
I’m also having difficulty getting a reorderable list to show up inside of a simple class. For example, look at the following code.
using UnityEngine;
using System;
using System.Collections.Generic;
using EasyEditor;
public class SomeClass : MonoBehaviour
{
[Serializable]
public class TestClass
{
[SerializeField] private List<string> testList;
}
[SerializeField] private TestClass testClass;
}
Attach the script to a GameObject, right-click the script and Customize Interface, and then notice how the list displays in the regular Unity way, not as a reorderable list. In your examples, I noticed that you were able to achieve this using InlineClassRenderer, but I’ve tried a few combinations and haven’t been able to get this to work.
What attributes do I need to add to get it to display as a reorderable list?
Thanks.
1 - It is not possible for the moment (as mentioned in the description of the product).
2 - It is a bug. It will work if testClass is public. I will have a look into it today. Hereunder the working code. Thanks for reporting !
public class SomeClass : MonoBehaviour
{
[System.Serializable]
public class TestClass
{
[SerializeField] private List<string> testList;
}
[Inspector(rendererType = "InlineClassRenderer")]
public TestClass testClass;
}
Just experimenting with this Asset. . It would be great and darn handy if groups (or alternative) were foldable / unfold able. . That would allow us to makes things MUCH tidier when entering big lists of data on the inspector… ?
Just wanted to say thanks for emailing the new version right away with the fix. I left a review in the Asset Store.
Is there an option to display the index number in the Rotorz lists? Would be handy when each element contains a lot of data vertically, and you collapse it but don’t know what’s inside that element, as nothing is displayed in the field when it’s collapsed.