This is a Level Editor tool created using Unity UI Elements and OnGUI feature. The project was developed in C#, completely by myself as a part of the Game Development program taken at Sheridan College, Oakville.
Platform: PC
#UIElements #C# #JSON #ScriptableObject #VisualStudio

Check out the Project:

Project Overview

This Unity Level Editor tool was used to design levels for a 2D game similar to the 1990’s game Gauntlet. The tool also provides ability for designers to create players/characters and other components of the game like enemies, pickup items, spawn factories, etc. which can be placed in the level. All assets created using the editor are saved as ScriptableObjects and the level file is saved as a JSON array.

Windows

The Editor contains the following windows:

  • Level Editor Window: This window provides a Grid map as a layout and all available game objects to be placed on this grid along with certain other properties related to the level (size, time, etc.).
  • Asset Window: This window allows user to create Asset objects by selecting their type (Texture, Audio, Prefab).
  • Main Player Window: This window allows user to create a Main Player by entering all required properties (Name, Lives, Sprite, etc.).
  • Enemies Window: This window allows user to create enemies by selecting their type (Melee, Range, Fire).
  • Pickups Window: This window allows user to create pickups to be placed throughout the level.
  • Spawn Factories: This window allows user to create spawn factories as well as select types of enemies that would spawn from them.
  • Static Objects: This window allows user to create static objects that aren’t interactable and can be placed throughout the level.
  • Projectiles: This window allows user to create Projectile assets which can be used by Player/Fire enemies.
  • Save File: This window opens up a “Save File” dialog box which saves the level data in JSON format.

Each window has an option to import its type of Scriptable object at the beginning in case of editing an existing Scriptable object. If imported, data is automatically loaded in the fields where it can be edited.

Gallery