JUtils
A unity utilities library
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 NJUtils
 NEditor
 CCustomNameEditor
 CRequiredEditor
 CSerializeInterfaceEditor
 CShowWhenEditor
 CTypeSelectorEditor
 CUneditableEditor
 CUnpackEditor
 CBaseMinMaxEditor
 CMinMaxEditor
 CMinMaxIntEditor
 COptionalEditor
 CSceneReferenceEditor
 CSerializableGuidEditor
 CWeightedEditor
 CJUtilsInspectorButton
 CEventChannelEditor
 CMonoBehaviourEditor
 CButtonAttributeAttach this button to a method to make it clickable in the inspector. This attribute will also draw parameters if it can
 CCustomNameAttributeChange the name of a parameter in the inspector
 CResourcePlayModeChangeCallbackReceiverAttributeReceive a call when the play mode has been changed in a resource. Can be used to reset some data of a resource
 CIResourcePlayModeChangeCallbackReceiverThis interface is optional but it gives all the methods for ResourcePlayModeChangeCallbackReceiverAttribute>
 CRequiredAttributeWhen an UnityEngine.Object reference has not been set, show a big warning
 CSerializeInterfaceAttributeRestrict the UnityEngine.Object field to extend a certain interface
 CShowWhenAttributeHide a field if the condition does not match, allows checks for bools, ints, floats & strings
 CTypeSelectorAttributeShow a dropdown for all classes that extend the field's type. Requires SerializeReference attribute to function correctly
 CUneditableAttributeDisable writing for this property in the editor
 CUnpackAttributeDisplays the given type in the inspector as if it isn't a different object. Useful for Unity DOTS baker workflow
 CBillboardCameraBill-boarding component which allows for advanced anchoring and other behaviours
 CDontDestroyOnLoadRuns the DDOL function on this gameobject, this is a more declerative way to mark an object for DDOL
 CDestroyObjectAfterKilledDestroys the targetted gameobject when the attached HealthComponent died
 CHealthComponentA simple yet versatile HealthComponent implementation that uses SendMessage to send its heal & damage events
 CIDamageEventUsed to create more detailed damage events
 CIHealEventUsed to create more detailed heal events
 CSimpleDamageEventLight simple implementation for the IDamageEvent
 CSimpleHealEventLight simple implementation for the IHealEvent
 CObjectPoolA simple implementation for an object pool
 CObjectPoolManagerMakes it easier to work with object pools
 CPoolItemA behaviour that is used with the ObjectPool. Other behaviours can listen to the events this class sends
 CSpawnPoolItemAfterDestroyedSpawn an object using ObjectPoolManager after the game object was disabled / destroyed or the pool item was sent back to the object pool
 CSpawnPoolItemAfterEnabledSpawn an object using ObjectPoolManager after the game object was enalbed / created or the pool item was sent into action
 CCoroutineCatcherWrapper for troublesome coroutines
 CCoroutinesMake coroutines run on the JUtilsObject
 CRoutinesA static class that contains methods for easily creating routines & avoid object allocations
 CMinMaxA struct with a custom editor which can be used to get a minimum and a maximum value, handy for random values & clamping
 CMinMaxIntA struct with a custom editor which can be used to get a minimum and a maximum value, handy for random values & clamping
 COptionalA struct useful for showing in the inspector if the value is optional, and does not have to be set. Also allows for quicker checks if the value is set
 CRangeExtensionsUsed to turn a range or int to a RangeEnumerator so it can be used in a Foreach loop
 CRangeEnumeratorAllows for complex enumerations for Range types
 CSceneReferenceReference a scene via its asset instead of its name. It can also give suggestions based on it being null / not in build
 CSerializableDictionaryA dictionary of which the values do not get lost on serialization
 CPairThe pair object used for the internal data
 CSerializableGuidA lightweight guid class that can be serialized
 CSerializableTypeSerialize a System.Type Object
 CIWeightedA interface that helps with weighted randomness WeightedExtensions
 CWeightedA struct that makes it easier to work with weighted randomness

See also
WeightedExtensions
 CBaseEventChannelThe base class for an simple event channel
 CBaseEventListenerThe base class for event channel based listeners. Recommended for UI or if the GO only has one event listener, otherwise consider using the BaseEventChannel<T> directly
 CBoolEventChannel
 CBoolEventListener
 CEventChannel
 CEmpty
 CEventChannelExtensionsUseful extensions for dealing with BaseEventChannel<T>>
 CEventListener
 CFloatEventChannel
 CFloatEventListener
 CIntEventChannel
 CIntEventListener
 CLongEventChannel
 CLongEventListener
 CUIntEventChannel
 CUIntEventListener
 CULongEventChannel
 CULongEventListener
 CAudioListenerExtensionsAdds extensions for the AudioSource component
 CCollectionExtensions
 CColorExtensionsGives threshold comparing functions for Colors
 CComponentExtensionsUseful extensions for working with components
 CEnumerableExtensions for Enumerates
 CTransformExtensionsSome useful extensions to transforms
 CUnityObjectExtensions
 CVector2Extensions
 CVector3Extensions
 CWeightedExtensionsContains helper functions for working with Weighted Randomness
 CAssemblyJUtilsUtilities class working with assemblies
 CGizmoUtilsSome shorthand functions for drawing things with Hanldes
 CIService
 CServiceManagerA simple service manager
 CAutoSingletonBehaviourYour simple and everyday singleton class that automatically instantiates if there is no instance yet
 CISingletonSimple interface for working with singletons
 CMultitonBehaviourA MonoBehaviour where you can easily access all of its instances
 CSingletonBehaviourYour simple and everyday singleton class
 CSingletonManagerCentralized singleton to fix reference & hot reload issues issues
 CStateA simple state that can be driven by stateMachine
 CStateDataThe data of a state
 CStateMachineA mono behaviour state-machine that can also be used as a state
 CQueueEntryRepresentation of the state and its data in the queue
 CStateRefEmpty structure used to help with typesafety