Skip to content
Andrew Rumak edited this page May 18, 2020 · 40 revisions

Guid Component — Generate unique and persistent IDs
SceneReference Component — Reference scene with Scene asset in inspector
ActivateOnStart Component — Set state of specific GO on game start
AnimationStateReference — Specify AnimationClip on object with Animator
AssetPath and AssetFolderPath — Inspector button to browse for folder or asset under Assets folder
Billboard Component — Force object to always face camera
ColliderGizmo Component — Highlight colliders and triggers in SceneView
FPSCounter Component — Display FPS counter on Playmode
MyCursor — Nice way to set cursor with hotspot
MyDictionary — Serializable Dictionary
MinMaxInt and MinMaxFloat — Asserts that Max => Min with handy inspector drawer
Optional and OptionalMinMax — Optionally assignable values
Reorderable Collections — Reorder your collections in inspector


Guid Component

Generates unique id no matter what (i.e. handles object duplication or prefab instances etc).
The most viable way to create Save Game System.


SceneReference

Allows to refer to Scene asset in inspector and access scene via SceneName or SceneIndex.


ActiveStateOnStart Component

Toggles object active state on game start.
For instance, I use it with UI objects, to hide in editor and automatically show in playmode.


AnimationStateReference

Use to specify some AnimationClip on assigned Animator.
Will automatically use Animator of current object, if any.

public AnimationStateReference JumpState;

private void Update()
{
	if (Input.GetKeyDown(KeyCode.Space)) JumpState.Play();
}


AssetPath and AssetFolderPath

String wrapper to display "Browse" button in inspector.
Allows to browse for folder or file path under Assets folder.

public AssetPath RequiredAsset;
public AssetPath MainScenePath = AssetPath.WithExtension("unity");
[Separator]
public AssetFolderPath GameplayTestsFolder;


Billboard Component

Object with this component will always face camera


ColliderGizmo Component

Visualize colliders on scene Works with Mesh, Box, Sphere, Edge, Box2d, Circle2d, Edge2d Colliders.

Also supports NavMeshObstacles!


//TODO: //ColliderToMesh


FPSCounter

Add this to any object on scene to draw FPS counter in playmode.
Allows to specify ui position and target framerate. Target Framerate is used to indicate current performance with color.


MyDictionary

For now MyDictionary is not for inspector usage, but rather for caching.
I use it to preserve data in editor scripts on assembly reload.
[Serializable] public class AgentAgeDictionary : MyDictionary<Agent, int> {}


MyCursor — Nice way to set cursor with hotspot

public MyCursor Regular;
public MyCursor Interact;
...
Interact.ApplyAsConfinedCursor();
Interact.ApplyAsLockedCursor();
Interact.ApplyAsFreeCursor();


MinMaxInt and MinMaxFloat

public MinMaxInt Damage;


Optional and OptionalMinMax

You may use predefined Optional types like OptionalFloat, OptionalString or OptionalComponent etc.
Or create your own with one line of code:
[Serializable] public class OptionalRigidBody : Optional<RigidBody> { }

Some predefined Optional Types have static WithValue(T value) method to set default values from code:
public OptionalKeyCode ResetGameKey = OptionalKeyCode.WithValue(KeyCode.P);

OptionalMinMax, well, is for optionally set min and max float values


Reorderable Collections

Reorderable and ReorderableList base types allow you to create reorderable collections.
Create your own with one line of code:

[Serializable] public class ReorderableNavMeshAgent : Reorderable<NavMeshAgent> { }


//ParallelCoroutineGroup

//Singleton

//UIFollow

//UIImageBasedButton

//UIImageBasedToggle

//UISizeBy

//WaitForUnscaledSeconds?

// Editor Types //

//ConditionallyColoredGUIBlock

//ConditionallyEnabledGUIBlock

//DraggableHandler

//EditorWithSubEditors ?

//IndentBlock ?

//ReorderableCollection

//SceneClickHandler

//ScrollViewBlock ?

Clone this wiki locally