Howdy! To watch this entire Gametutor course please Register  or log in

Creating a Node Based Editor in Unity
Buy On Udemy
Course Description
Game development requires the involvement of many different types of disciplines and people to complete. Often times the Game engine or software used to make the game, is very technical making it difficult for some disciplines to work efficiently in. This is where the creation of artist / designer tools come into play. As a unity developer, learning how to create Visual Editor Tools for artists and designers is crucial to the productivity of your game development production.
This course will guide you through the process of developing your first visual node based editor that can be used for any sort of game development task. It will give you the underlying knowledge of saving out your nodes data, giving the user the ability to connect nodes, create nodes, and delete nodes. By the end of this course you will have a fully functional node based editor that you can extend to meet the needs of your game development project.
Course Details
Difficulty: Advanced
Total Lessons: 19 Lessons
Running Time: 4:08:53
Date: 10/26/14
Course Files
This is a premium course and source files are available only to Rockstar members. Please Log In or Upgrade your account to unlock these files.
Locked Source File Icon
File Name:
File Size: 701.91 KB
Unity packages and projects for all course material including project, library, scripts and asset files. If it's in the video it's in the source files.
Course Lessons

1. Getting our Work Environment Setup

With any new tool development or project, it is always a good idea to isolate out your development environment in a new unity project. So let’s create our new Unity project and get our folder structure stubbed in and ready for coding.

2. Stubbing in our Scripts

With our new Unity project set up, we will now start the coding process by creating all the scripts we will need. By the end of this lesson we will have each empty script ready for us to fill in with our actual code.

3. Getting the Editor Window Running

The first step in our Node Based editor development, is to get the editor window, where the user will interact with nodes, drawing so we can further develop the different views that we will need.

4. Developing our View System

This lesson will focus on creating a more flexible view system through the process of class inheritance. We will develop a base class that all editor views will have, then extend that base class to include only the specific functions that each view will have to do. This will give us the flexibility to create many different types of views, and remove the process of duplicating code.

5. Drawing Views

With our view system coded and our class structures working, let’s now get our views to actually draw some GUI in the Editor Window.

6. Editor Events

In order for users to interact with the editor, we will need to read in input events from the mouse and keyboard. By the end of this course we will have working input events we can use to develop rich user interaction.

7. Creating the GUISkin

With the meat of our editor up and running, let’s start to lay in the foundation to style the editor GUI, so we can really customize the look of our Node Based tool.

8. Developing our Data Structure

Now that we have our Editor window and views drawing, let’s get our data structure up and running. We will need this data structure to save and house all the nodes data so we never lose our graphs that we create in the Node Editor.

9. Creating Data

Understanding how to work with Scriptable objects and the Asset Database, we will be able to serialize all our graph and node data. This lesson will walk you through the steps necessary to get your data created and saved between user sessions. By the end, you will have working graphs ready to have nodes added to them.

10. Context Menus

Giving artists and designers the ability to work quickly is key to an efficient pipeline. The use of context menus allows users to quickly access graph and node functionality from the right mouse button. Ultimately this allows anyone to the ability to create new nodes and graphs without having to navigate to a menu.

11. Loading and Un-Loading

With context menus we can perform all sorts of operations that allow users to quickly get work done. This lesson will walk you through how to Load and Un-Load a graph from the database.

12. Creating Nodes

This lesson will now take us through the process of adding new nodes to our graph data. We will learn how to utilize the Asset Database to add sub-objects to our graph asset.

13. Displaying Nodes

Now that we are able to add nodes to our graph, as a data representation, let’s learn how we can get our nodes to draw in the Editor Window.

14. Node Management

When developing a node based editor, we have to make sure we are keeping track of which node is selected, which node we are editing and whether or not we are in a node connection mode. By the end of this lesson, we will be able to select nodes, edit them, giving us a nice framework to manage our nodes.

15. Inputs and Outputs

No node editor would be complete without inputs and outputs. Throughout this lesson we are going to look at how we construct inputs and outputs on our nodes, so that we can begin to connect them together.

16. Node Connections

Now the real fun comes into play. We have all these great nodes drawing in our Editor Window, we can move them around, select them, and deselect them. So let’s learn how we set up our code to allow user to connect nodes together.

17. Completing Nodes

This lesson will finalize the nodes system, by showing you how to delete nodes, and show their properties in the property view, completing the Node editor in general.

18. Drawing the Grid

Any good node based editor has a larger space to work with the nodes, and also has a nice grid background to fill in the space. Throughout this lesson we will create a way in which we can pan the graph view, as well as draw a grid in the background.

19. Conclusion

In our final lesson of the Node Based Editor course, we will review what we have learned and talk about where to go next with your Unity tools programming adventures!