We may earn an affiliate commission when you visit our partners.
Gametutor :-)

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.

Read more

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.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Learn to create a visual node editor in unity 3d
  • Learn to build custom editor ui's with ease!
  • Learn to build your own custom editor windows in unity 3d
  • Understand how to create and save data created in your custom editor
  • Actually understand how to create visual nodes in a custom editor that can be hooked up into other nodes to produce logic.

Syllabus

Introduction

In this first lecture we are simply going to walk through the final Node Based Editor that we are going to create!

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.

Read more

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

In the second part of the completing Nodes lecture we are going to cover how to take the information in the nodes themselves and display them in the properties window.

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.

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!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides Unity developers with the ability to create custom visual editor tools, which can significantly improve the productivity of game development production
Focuses on creating tools for artists and designers, which helps bridge the gap between technical and creative disciplines in game development
Explores the use of Scriptable Objects and the Asset Database for serializing graph and node data, which is essential for saving and loading editor states
Requires familiarity with Unity 3D, which may necessitate prior experience or completion of introductory Unity courses for those new to the engine
Teaches how to build custom editor UI's and windows, which are skills that are directly applicable to extending the Unity editor for specific project needs
Focuses on an editor for Unity 3D, which may not be transferable to other game engines such as Unreal Engine, Godot, or GameMaker

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Building node editors in unity 3d

According to learners, this course serves as a solid foundation for anyone looking to dive into Unity editor scripting and build custom node-based tools. Students frequently highlight the practical, hands-on approach, leading to a functional editor tool by the end. While many found the content valuable for understanding the core concepts of creating custom Editor UI's, saving data, and connecting nodes, some reviewers noted that the code presented could sometimes be challenging to follow or that the course might require a good understanding of C# and Unity beforehand. Overall, it's seen as a very good starting point, particularly for those with some prior Unity experience.
Best suited for intermediate users.
"Make sure you have a good grip on C# and Unity basics before starting this."
"I wouldn't recommend this for absolute beginners in Unity or programming."
"Requires some prior experience with Editor Scripting concepts."
"Felt like some concepts were glossed over, assuming prior knowledge."
Learn custom UI, data, nodes, connections.
"It clearly explains how to create custom GUI within the editor window."
"The section on saving node data using Scriptable Objects was very helpful."
"I learned exactly how to set up connections between different nodes."
"Covers drawing nodes, handling input, and managing the graph data."
Builds a functional editor tool.
"By the end, I had a working node editor that I could actually use and expand upon."
"The hands-on project approach made learning much more effective for me."
"It's great to see a practical outcome from following the lessons."
"I appreciated building a real tool throughout the course."
Provides a strong base for editor tools.
"This course gave me a good understanding of the fundamentals of creating a node editor."
"It provides a solid foundation in Unity Editor Scripting, which is exactly what I needed."
"I feel confident now to start building my own custom tools after this course."
"The course lays out the core concepts needed to get started with node editors."
May need updates for newer Unity.
"Some code examples required tweaking to work with the latest Unity version I'm using."
"Felt slightly outdated in places regarding current Unity practices."
"Could benefit from an update to address changes in newer Unity Editor APIs."
"I had to adapt some parts based on Unity version differences."
Code can be challenging to follow.
"Sometimes the code felt a bit messy, making it difficult to integrate into my own projects."
"I found the coding style inconsistent in parts, which required extra effort to understand."
"The script organization could be improved for better clarity and maintainability."
"Following along with the code required some backtracking at times."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Creating a Node Based Editor in Unity 3D with these activities:
Review Unity Editor Scripting
Reviewing Unity Editor Scripting will help you understand the core concepts used in creating custom editor tools.
Show steps
  • Read the Unity documentation on Editor scripting.
  • Practice creating simple editor extensions.
Review 'Unity in Action, Second Edition'
Reading 'Unity in Action' will provide a broader understanding of Unity, which is essential for creating effective editor tools.
Show steps
  • Read the chapters related to editor scripting and UI.
  • Try the examples in Unity.
Create a Simple Node
Starting a small project to create a simple node editor will solidify your understanding of the concepts taught in the course.
Show steps
  • Create a new Unity project.
  • Implement a basic node class with input and output ports.
  • Display the node in a custom editor window.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Game Programming Patterns'
Reading 'Game Programming Patterns' will help you design a more robust and maintainable node editor.
Show steps
  • Read the chapters related to object-oriented design and architecture.
  • Consider how these patterns can be applied to your node editor project.
Document Your Node Editor
Documenting your node editor project will reinforce your understanding of the code and improve your communication skills.
Show steps
  • Write a README file explaining the project's purpose and usage.
  • Add comments to your code to explain complex logic.
  • Create a short video demonstrating the editor's features.
Contribute to an Open Source Node Editor Project
Contributing to an open-source project will expose you to real-world development practices and improve your collaboration skills.
Show steps
  • Find an open-source node editor project on GitHub.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Create a Demo Reel
Creating a demo reel showcasing your node editor will help you demonstrate your skills to potential employers or clients.
Show steps
  • Record a video demonstrating the features of your node editor.
  • Edit the video to create a polished demo reel.
  • Add narration or text overlays to explain the features.

Career center

Learners who complete Creating a Node Based Editor in Unity 3D will develop knowledge and skills that may be useful to these careers:
Indie Game Developer
An Indie Game Developer works independently or in a small team to create and publish games. This course, which guides you through developing a visual node-based editor in Unity 3D, is particularly valuable for Indie Game Developers. It may teach you to create custom tools for artists and designers, streamlining the development process without relying on large teams or external resources. This will allow the Indie Game Developer to extend and improve the indie game development project. This course is useful for Indie Game Developers.
Unity Developer
A Unity Developer is responsible for implementing game features, writing scripts, and ensuring the game runs smoothly. As a Unity Developer, this course helps you learn how to create visual editor tools for artists and designers, which is crucial for game development production. The course provides underlying knowledge of saving node data and giving users the ability to connect, create, and delete nodes. This course helps Unity Developers to develop a fully functional node-based editor that can be extended to meet the needs of game development projects.
Gameplay Programmer
A Gameplay Programmer specializes in implementing the interactive elements of a game, such as character controls, game mechanics, and AI behaviors. 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. This tool will be important for all Gameplay Programmers.
Game Programmer
Becoming a Game Programmer involves creating the code that brings a game to life, including gameplay mechanics, AI, and user interfaces. This course, which teaches how to develop a visual node-based editor in Unity 3D, is highly relevant for a Game Programmer looking to enhance their skills. You will learn the underlying knowledge of saving node data, giving the user the ability to connect nodes, create nodes, and delete nodes for your games. This course equips you with the ability to build custom tools tailored to specific game development needs.
Tools Programmer
A Tools Programmer focuses on developing and maintaining tools that streamline the game development process. This course, which guides you through creating a visual node-based editor in Unity 3D, directly aligns with the responsibilities of a Tools Programmer. By learning to build custom editor UI's, create custom editor windows, and save data, you build the foundation for creating tools that improve workflow for artists and designers. The course teaches how to create visual nodes that can be connected to produce game logic. This course may be useful for Tool Programmers.
Technical Artist
A Technical Artist bridges the gap between artists and programmers, optimizing art assets and creating tools to improve the art pipeline. This course, centered around developing a visual node-based editor in Unity 3D, may be useful for Technical Artists. It may teach valuable skills in creating custom editors and user interfaces within Unity. By understanding how to save node data and enable node connections, Technical Artists create efficient workflows for content creation teams. This course may help a Technical Artist.
Game Designer
A Game Designer is responsible for the overall vision and design of a game. This course may be useful to Game Designers by making them aware of the tools needed to build a game from a technological perspective. Game designers can communicate more effectively with programmers when they have an understanding of the technological side of the game development. By understanding how to build custom editors and manage data structures, you can more effectively manage the game development.
Interactive Developer
Interactive Developers create engaging and interactive experiences for various platforms, including games, installations, and web applications. The skills taught in this course may be useful for Interactive Developers as a tool for creating the user interface. This course helps you develop underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.
Simulation Developer
Simulation Developers create simulations for research, training, or entertainment purposes, often using game engines like Unity. The skills taught in this course may be useful for Simulation Developers as a tool for creating the user interface. This course helps you develop underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.
XR Developer
XR Developers build applications that extend reality, whether that be virtually, or in an augmented way. This course may be useful for an XR Developer due to user interfaces often used in games. By understanding how to build custom editors and manage data structures, you can more effectively manage the game development. This course helps you develop underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.
Virtual Reality Developer
Virtual Reality Developers create immersive experiences for VR platforms. This course may be useful for a Virtual Reality Developer due to user interfaces often used in games. By understanding how to build custom editors and manage data structures, you can more effectively manage the game development. This course helps you develop underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.
Augmented Reality Developer
Augmented Reality Developers create immersive experiences for AR platforms. This course may be useful for an Augmented Reality Developer due to user interfaces often used in games. By understanding how to build custom editors and manage data structures, you can more effectively manage the game development. This course helps you develop underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.
UI Developer
User Interface Developers specialize in creating interactive and visually appealing interfaces for software applications. The skills taught in this course may be useful for UI Developers interested in visual programming tools or UI/UX design. By understanding how to build custom editors and manage data structures within a visual environment, you build a foundation for User Interface Developer work. The course may be helpful for UI Developers.
Software Engineer
Software Engineers design, develop, and test software applications. While this course focuses on game development within Unity 3D, the principles of creating a node-based editor are applicable to broader software engineering contexts. The course may be helpful for Software Engineers interested in visual programming tools or UI/UX design. By understanding how to build custom editors and manage data structures within a visual environment, Software Engineers can apply these concepts to various software projects.
Data Visualization Specialist
A Data Visualization Specialist designs and develops interactive visual representations of data to help users understand complex information. While the course focuses on building a node-based editor within Unity 3D, the core principles of creating visual interfaces and managing data structures translate well to data visualization. The course helps you by providing underlying knowledge of saving node data and giving users the ability to connect nodes, create nodes, and delete nodes.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Creating a Node Based Editor in Unity 3D.
Provides a comprehensive guide to Unity development, covering various aspects including editor scripting. It's a useful resource for understanding the fundamentals of Unity and how to create interactive experiences. While not solely focused on editor scripting, it provides a solid foundation for understanding the Unity environment. It is commonly used as a textbook for introductory Unity courses.
Explores common design patterns used in game development, which can be helpful for structuring your node editor code. It provides insights into creating maintainable and scalable systems. While not directly related to Unity or editor scripting, the principles discussed can be applied to improve the overall design of your project. This book is more valuable as additional reading to expand your knowledge of software design.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser