All Projects → James-Frowen → Node Level Editor

James-Frowen / Node Level Editor

Licence: mit
Unity3d Editor tools to create rooms quickly.

Projects that are alternatives of or similar to Node Level Editor

Unity Script Collection
A maintained collection of useful & free unity scripts / library's / plugins and extensions
Stars: ✭ 3,640 (+13900%)
Mutual labels:  unity, unity-editor
Texture maker
A texture maker tool for unity.
Stars: ✭ 358 (+1276.92%)
Mutual labels:  unity, unity-editor
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (+1038.46%)
Mutual labels:  unity, unity-editor
Unitypausemenu
This is an open source Unity pause menu created for the game New Horizons, and it's completely free because of how a pause menu is a core component of a game, while the unity asset store was lacking in such an asset (until this was released on the asset store).
Stars: ✭ 160 (+515.38%)
Mutual labels:  unity, unity-editor
Ugui Editor
Unity UGUI editor tools,improve the efficiency of ui development.
Stars: ✭ 479 (+1742.31%)
Mutual labels:  unity, unity-editor
Unity Aseprite Importer
An aseprite-file importer for unity written in C#, built upon the experimental AssetImporter API
Stars: ✭ 177 (+580.77%)
Mutual labels:  unity, unity-editor
Unity Mulligan Renamer
Mulligan Renamer tool for the Unity Editor allows for quick and safe renaming of many assets and gameobjects at once
Stars: ✭ 315 (+1111.54%)
Mutual labels:  unity, unity-editor
Pb stl
STL import/export for Unity, supporting both ASCII and Binary.
Stars: ✭ 108 (+315.38%)
Mutual labels:  unity, unity-editor
Unitydarkskin
Switcher of UI theme in Unity Editor (light -> dark) (.NET, WPF)
Stars: ✭ 466 (+1692.31%)
Mutual labels:  unity, unity-editor
Actors.unity
🚀Actors is a framework empowering developers to make better games faster on Unity.
Stars: ✭ 437 (+1580.77%)
Mutual labels:  unity, unity-editor
Uiwidgets
UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.
Stars: ✭ 1,901 (+7211.54%)
Mutual labels:  unity, unity-editor
Editorxr
Author XR in XR
Stars: ✭ 790 (+2938.46%)
Mutual labels:  unity, unity-editor
Unity Bitmapfontimporter
An unity editor extension for bitmap font.
Stars: ✭ 139 (+434.62%)
Mutual labels:  unity, unity-editor
Unity Editor Toolbox
Tools, custom attributes, drawers, hierarchy overlay, and other extensions for the Unity Editor.
Stars: ✭ 273 (+950%)
Mutual labels:  unity, unity-editor
Ma textureatlasser
Texture atlas creator for Unity
Stars: ✭ 116 (+346.15%)
Mutual labels:  unity, unity-editor
Unity Serializabledictionary
Serializable dictionary class for Unity
Stars: ✭ 302 (+1061.54%)
Mutual labels:  unity, unity-editor
Projectbuilder
A tool for easy automating and customizing build process for Unity.
Stars: ✭ 80 (+207.69%)
Mutual labels:  unity, unity-editor
Webviewhook
Exposed Unity Editor WebView API
Stars: ✭ 107 (+311.54%)
Mutual labels:  unity, unity-editor
Easybuttons
Add buttons to your inspector in Unity super easily with this simple attribute
Stars: ✭ 410 (+1476.92%)
Mutual labels:  unity, unity-editor
Nodegraphprocessor
Node graph editor framework focused on data processing using Unity UIElements and C# 4.6
Stars: ✭ 655 (+2419.23%)
Mutual labels:  unity, unity-editor

node-level-editor

Unity3d Editor tools to create rooms quickly.

These tools are in the beta stage of development, while they should be safe to use in existing scenes it is advised to use them in an new scene to start with.

Features

Install

Copy code from the source folder to Assets folder in unity project.

Unity Tests

There are a few tests that can be run by unity to make sure some parts of this project work. Check here for details on running tests in unity.

Overview

This tool was created to help the creating of room based scene in unity. Boxes made of 6 quad facing inwards, and the ability to cut holes in these quads will allow you to prototype levels quickly.

example of level created

The scripts save the data about the current nodes in a json file. When you open a scene you can select when where data will be loaded from and saved to. You can also open the data file and edit it manually, details here. The scripts will create a ROOT node that will be the default parent of any other node.

node level editor window

After changes are made to nodes in the scene the save button must be press to make those changes save to the data file. Unloading and reloading will destroy all nodes in the current scene.

node level editor window

Create Nodes

Pressing the New Node button will open a new window that allows you to create a new node.

There are 4 types of nodes:

  • Empty nodes are basically empty gameobjects, they can be useful to group other nodes together
  • Cube nodes are boxes with 6 inward facing quads
  • Quad node are a single gameobject with quad mesh render and collider
  • Hole nodes target quad nodes and split then in order to create a hole

node create window

Name of nodes needs to be unique so the scripts will set a name based on the type.

The position and scale of the node work the same way as regular transforms in unity expect for holes. For hole nodes the position is the location of the hole relative to the target quad and the scale is the size relative to the target quad.

The Show node button will attempt to show the node you are creating in the scene, this may not work well with hole nodes.

The parent of a node works the same way as regular transforms in unity.

Accepting the node will close the window and add the node to the scene. The data will still need to be saved

node create window

onNodeCreation Event

When a node is created the NodeCreator.onNodeCreation is called by the scripts. This event can be used to do modify the node as it is create. An example of this would be to add a tag to gameobjects created by the scripts.

Example of event

Create nodes from cubes

The Create from cubes window allows level layouts to be quickly created with cubes and then converted to cube nodes.

Set the container to be the parent of the cubes you have create.

When you press create all current nodes in the selected data file are delete and replace when the new nodes.

create from cube window

Cut Holes

The cut hole window allows holes to be created in many quads at the same time. It is also a more visual way of creating holes so may be easier than typing in position and scale manually.

cutting holes with cube

A cutter is created by the window and is shown in the scene as a green wireframe of the area that will be cut. The cutter can be moved in the scene or by position and scale field on the window. Quads with normals to different axis can be ignored, for example when the Y axis is ignored you can cut holes in walls without worrying about cutting a hole in the floor.

When the Cut Hole button is pressed the quad will be replaced by 4 quad around the hole. When the scene is saved the information to create the hole is stored in the data file and will be recreated on the same quad when ever the data is reloaded.

cutting holes with cube

JSON data

The data for nodes is stored in a JSON format and can be editor manually. If any changes are made to this file the data in the scene will need to be reloaded.

Each node has the same format

{
    "name": "unique name",
    "position": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
    },
    "scale": {
        "x": 1.0,
        "y": 1.0,
        "z": 1.0
    },
    "parentName": "",
    "nodeType": "cube"
}

The position and scale are the local scale of this node. The parentName is the name of the node that will be set are the parent of this node, this is why it is important that each node has a unique name. The nodeType is the type of node to create, this can be one of the following: empty, quad, cube or hole.

The data while also contains nameIndex, this is the number that will be add to node names to make sure they are unique. It is not a good idea to modify this number

Known Issues and Planned Features

Known bugs and planned features will be added to this Trello board

If you find a bug while using the tool or just have a suggestion please create a new issue on github or tweet @JamesFrowenDev

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].