Book Image

Extending Unity with Editor Scripting

By : Angelo R Tadres Bustamante
Book Image

Extending Unity with Editor Scripting

By: Angelo R Tadres Bustamante

Overview of this book

One of Unity's most powerful features is the extensible editor it has. With editor scripting, it is possible to extend or create functionalities to make video game development easier. For a Unity developer, this is an important topic to know and understand because adapting Unity editor scripting to video games saves a great deal of time and resources. This book is designed to cover all the basic concepts of Unity editor scripting using a functional platformer video game that requires workflow improvement. You will commence with the basics of editor scripting, exploring its implementation with the help of an example project, a level editor, before moving on to the usage of visual cues for debugging with Gizmos in the scene view. Next, you will learn how to create custom inspectors and editor windows and implement custom GUI. Furthermore, you will discover how to change the look and feel of the editor using editor GUIStyles and editor GUISkins. You will then explore the usage of editor scripting in order to improve the development pipeline of a video game in Unity by designing ad hoc editor tools, customizing the way the editor imports assets, and getting control over the build creation process. Step by step, you will use and learn all the key concepts while creating and developing a pipeline for a simple platform video game. As a bonus, the final chapter will help you to understand how to share content in the Asset Store that shows the creation of custom tools as a possible new business. By the end of the book, you will easily be able to extend all the concepts to other projects.
Table of Contents (18 chapters)
Extending Unity with Editor Scripting
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Implementing the GUI for the Palette


In this section, we will add our custom GUI and functionalities to the Palette window.

Creating tabs

We want to use the category names as labels for a set of tabs in the Palette window. When we select one of these tabs, only the level piece prefabs of the selected category will be displayed.

We will create a method called GetListFromEnum. This will help us to easily list enums for further use. Let's add this method inside the EditorUtils class:

public static List<T> GetListFromEnum<T> () {
    List<T> enumList = new List<T> ();
    System.Array enums = System.Enum.GetValues (typeof(T));
    foreach (T e in enums) { 
        enumList.Add (e);
    }
    return enumList;
}

The method receives an enum type as a generic type and returns a list with all the enum values in it.

Now, to create the GUI for the tabs, we need to make a few updates in the PaletteWindow.cs script, as follows:

using UnityEngine;
using UnityEditor;
using System.Collections...