All Projects → rfadeev → unity-forge-property-drawers

rfadeev / unity-forge-property-drawers

Licence: MIT license
Custom propery drawers to ease fields value management in Unity editor.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to unity-forge-property-drawers

Uiwidgets
UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.
Stars: ✭ 1,901 (+5180.56%)
Mutual labels:  unity-editor
project-settings-toolbar
A tool bar that can open each item of Project Settings.
Stars: ✭ 28 (-22.22%)
Mutual labels:  unity-editor
Unity-SerializeReferenceExtensions
Provide popup to specify the type of the field serialized by the [SerializeReference] attribute in the inspector.
Stars: ✭ 255 (+608.33%)
Mutual labels:  unity-editor
Unity Aseprite Importer
An aseprite-file importer for unity written in C#, built upon the experimental AssetImporter API
Stars: ✭ 177 (+391.67%)
Mutual labels:  unity-editor
sdk-for-unity-vr-starter-project
[Deprecated] SpatialOS SDK for Unity Virtual Reality Starter Project
Stars: ✭ 43 (+19.44%)
Mutual labels:  unity-editor
download.unity.com
Unity Download http://unity3d.com/unity/download/archive
Stars: ✭ 90 (+150%)
Mutual labels:  unity-editor
Unity Bitmapfontimporter
An unity editor extension for bitmap font.
Stars: ✭ 139 (+286.11%)
Mutual labels:  unity-editor
HotUpdateSolution
Hot update solution for unity3d
Stars: ✭ 30 (-16.67%)
Mutual labels:  unity-editor
RustMapEditor
Open source map editor in Unity, for Rust.
Stars: ✭ 38 (+5.56%)
Mutual labels:  unity-editor
DialogueGraph
Open-source node-based tool for developing branching conversation trees
Stars: ✭ 133 (+269.44%)
Mutual labels:  unity-editor
unity-customizable-toolbar
Customizable toolbar available in the Unity editor.
Stars: ✭ 32 (-11.11%)
Mutual labels:  unity-editor
ar-simulation
AR Simulation for Unity • Right in the Editor • Minimally Invasive
Stars: ✭ 101 (+180.56%)
Mutual labels:  unity-editor
LMS.Version
Super simple auto build version tool
Stars: ✭ 40 (+11.11%)
Mutual labels:  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 (+344.44%)
Mutual labels:  unity-editor
1 First Steps
Setup Unity and Visual Studio on Mac and PC. Use Unity's editor to position, rotate and scale game objects. Understand prefabs. Write very basic code, and use Unity's Console. http://gdev.tv/cu2github (REF: FS_CU2)
Stars: ✭ 23 (-36.11%)
Mutual labels:  unity-editor
Missingreferencesunity
A Unity editor extension for finding missing object references
Stars: ✭ 146 (+305.56%)
Mutual labels:  unity-editor
UniProjectWindowMenuCustomizer
Editor extension that allows you to customize the menu that appears when you right-click on Project view.
Stars: ✭ 18 (-50%)
Mutual labels:  unity-editor
UnityNativeTool
Allows to unload native plugins in Unity3d editor
Stars: ✭ 147 (+308.33%)
Mutual labels:  unity-editor
Unity-IMGUI-TreeView
Simple Tree View implementation for IMGUI (Editor GUI) in Unity. Includes a special type for working with asset paths, but base data structure and view can be easily extended to support anything.
Stars: ✭ 73 (+102.78%)
Mutual labels:  unity-editor
scripts-manager-unity3d
📄 Gives the list of scripts in the current scene with gameobject reference.
Stars: ✭ 52 (+44.44%)
Mutual labels:  unity-editor

license

Unity Forge Property Drawers

Custom propery drawers to ease fields value management in Unity editor.

Attributes list

Installation

Project supports Unity Package Manager. To install project as Git package do following:

  1. Close Unity project and open the Packages/manifest.json file.
  2. Update dependencies to have com.rfadeev.unityforge.propertydrawers package:
{
  "dependencies": {
    "com.rfadeev.unityforge.propertydrawers": "https://github.com/rfadeev/unity-forge-property-drawers.git"
  }
}
  1. Open Unity project.

Alternatively, add this repository as submodule under Assets folder or download it and put to Assets folder of your Unity project.

Attributes usage

Import UnityForge.PropertyDrawers namespace to be able to use attribute from the attributes list.

AnimationName

screencast

Attribute usage

Add attribute to string field to enable selection of animation name value from dropdown list in Unity editor. Attribute without parameters works on Animation component attached to inspected object.

[SerializeField, AnimationName]
private string animationName;

Specify animation component via animationField constructor parameter to enable animation name selection from that component.

[SerializeField]
private Animation exampleAnimation;
[SerializeField, AnimationName(animationField: "exampleAnimation")]
private string animationName;

Examples of attribute usage

Caveats

Unity manages clips internally specifically so for some reason order of clips returned by AnimationUtility.GetAnimationClips differs from the one displayed in the editor for Animation comoponent. Due to this expect different order of items in dropdown list for attribute.

AnimatorLayerName

screencast

Add attribute to string field to enable selection of animator layer name value from dropdown list in Unity editor. Attribute without parameters works on Animator component attached to inspected object.

[SerializeField, AnimatorLayerName]
private string layerName;

Specify Animator component via animatorField constructor parameter to enable layer name selection from that Animator component.

[SerializeField]
private Animator exampleAnimator;
[SerializeField, AnimatorStateName(animatorField: "exampleAnimator")]
private string exampleLayerName;

Examples of attribute usage

AnimatorParameterName

screencast

Add attribute to string field to enable selection of animator parameter name value from dropdown list in Unity editor. Note that parameter type must be specified for attribute. Attribute without other parameters works on Animator component attached to inspected object.

[SerializeField, AnimatorParameterName(AnimatorControllerParameterType.Float)]
private string exampleFloatParameterName;

Specify Animator component via animatorField constructor parameter to enable parameter name selection from that Animator component.

[SerializeField]
private Animator exampleAnimator;
[SerializeField]
[AnimatorParameterName(AnimatorControllerParameterType.Float, animatorField: "exampleAnimator"))]
private string exampleFloatParameterName;

Examples of attribute usage

AnimatorStateName

screencast

Attribute usage

Add attribute to string field to enable selection of animator state name value from dropdown list in Unity editor. Attribute without parameters works on Animator component attached to inspected object.

[SerializeField, AnimatorStateName]
private string stateName;

Specify Animator component via animatorField constructor parameter to enable state name selection from that Animator component.

[SerializeField]
private Animator exampleAnimator;
[SerializeField, AnimatorStateName(animatorField: "exampleAnimator")]
private string exampleStateName;

Examples of attribute usage

Caveats

Since layer index is decoupled from animator state name in Unity API, state name alone does not determine state and state index value should be managed separately. If only one animation layer is used, it's not the problem and Play(string stateName) overload can be used safely for fields using AnimatorStateName attribute.

AssetPath

screencast

Attribute usage

Add attribute to string field to enable show object field instead of text input for object path. Object selection updates serialized value of the string field. Attribute declataion requires object type. Attribute supports both full project path (like "Assets/Sprites/MySpriteA.png") and resources path type (like "Sprites/MySpriteB" for full path value "Assets/Resources/Sprites/MySpriteB.png"). Additionnal option allows to preview path value which is serialized.

[SerializeField, AssetPath(typeof(Sprite), false)]
private string spriteProjectPath01;
[SerializeField, AssetPath(typeof(Sprite), true)]
private string spriteResourcesPath01;
[SerializeField, AssetPath(typeof(Sprite), false, true)]
private string spriteProjectPath02;
[SerializeField, AssetPath(typeof(Sprite), true, true)]
private string spriteResourcesPath02;

Examples of attribute usage

GameObjectLayer

screencast

Attribute usage

Add attribute to int field to enable selection of game object layer value from dropdown list in Unity editor. Layers are configured in Tags and Layers Manager.

[SerializeField, GameObjectLayer]
private int exampleLayer;

Examples of attribute usage

GameObjectTag

screencast

Attribute usage

Add attribute to string field to enable selection of game object tag value from dropdown list in Unity editor. Tags are configured in Tags and Layers Manager.

[SerializeField, GameObjectTag]
private string exampleTag;

Examples of attribute usage

ScenePath

screencast

Attribute usage

Add attribute to string field to enable selection of scene path value from dropdown list in Unity editor. Path type can be set via fullProjectPath argument: if true, scene path will be full project path like "Assets/Scenes/MyScene.unity"; if false, path will be short project path without "Assets/" and ".unity" extension like "Scenes/MyScene". Source to populate dropdown can be set via fromBuildSettings argument: if true, only scenes from build settings will be shown in dropdown; if false, all scenes from project will be shown in dropdown. Additionally, onlyEnabled argument can be used to show only scenes enabled in build settings if fromBuildSettings is set to true.

// Full scene path, only enabled scenes from build settings
[SerializeField, ScenePath]
private string exampleScenePath01;
// Short scene path, only enabled scenes from build settings
[SerializeField, ScenePath(fullProjectPath: false))]
private string exampleScenePath02;
// Full scene path, all scenes from project
[SerializeField, ScenePath(fromBuildSettings: false))]
private string exampleScenePath03;
// Short scene path, all scenes from build settings
[SerializeField, ScenePath(fullProjectPath: false, onlyEnabled: false))]
private string exampleScenePath04;

Examples of attribute usage

SortingLayerName

screencast

Attribute usage

Add attribute to string field to enable selection of sorting layer name value from dropdown list in Unity editor. Sorting layers are configured in Tags and Layers Manager.

[SerializeField, SortingLayerName]
private string exampleSortingLayerName;

Examples of attribute usage

SpriteAtlasSpriteName

screencast

Attribute usage

Add attribute to string field and specify sprite atlas field to enable selection of sprite name from that atlas via dropdown list in Unity editor.

[SerializeField]
private SpriteAtlas atlas;
[SerializeField, SpriteAtlasSpriteName(spriteAtlasField: "atlas")]
private string spriteName;

Examples of attribute usage

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].