Lab 13 - Extending the editor
Task:
Create an editor window or add property attributes to organize components in your projects. This task can be submitted as teamwork! - every member in the team will get the same points.
Score: 1 point
- Each decorated component using property attributes adds 0.2p (at least 5 fields with annotations)
- Custom inspector 1p
- New editor window 1p
- Scene tool (custom gizmos and such) 1p (please also submit a txt document that describes the scene tool behavior)
Your work should add up to at least 1 point. The system is quite generous, so don't feel limited by the score values. It is not possible to receive more than 1 point though.
Submission:
Create screenshots of your editor modifications. Since you are modifying your projects, then this task can be submitted as a team. Add a text file or comment with all the names!
Using Property Attributes
Property attributes take very little effort to use and offer a lot of benefits. Download the example code and add it into a Unity project.
Example: https://www.optimatica.eu/courses/AttributeExamples.cs
Defining a completely custom inspector view
Unity also supports completely changing the look of a MonoBehaviour or ScriptableObject inspector window. For this you have to:
- Extend a new class from the Editor class for your custom inspector. eg public class MyComponentEditor : Editor
- Mark the class with CustomEditor attribute. [CustomEditor(typeof(MyComponent))]
- Define a OnInspectorGUI method using property drawers and IMGUI.
Examples: https://docs.unity3d.com/Manual/editor-CustomEditors.html
Video tutorials:
Adding new editor windows
You can create your own dockable windows inside the editor. This is useful for creating tools and plugins for your projects.
To create a window you must extend the EditorWindow class and define OnGUI method.
Manual: https://docs.unity3d.com/Manual/editor-EditorWindows.html
Scripting reference: https://docs.unity3d.com/ScriptReference/EditorWindow.html
Submission
If you did this task as a teamwork, only one person should submit. Add a text file with the names and everyone in the team will get the same points.
Make pictures (screenshots with the Snipping tool) of all your custom editor views (inspectors, windows), add a text file with the names and pack it to a zip file. Submit the zip.