Kulip is a general purpose Unity library meant to speed up development by providing common features.
What I term a "static" ScriptableObject is a ScriptableObject whose goal is to be a global variable.
This is useful to allow serializing a reference to a value, not a component, to prevent coupling. It is also somewhat of a replacement for static
variables or singletons, however, it does not actually have static lifetime. In addition, StaticSO
allows for reactive programming using a System.Action<T> ValueChangedEvent
. Comes with a few built-in types (StaticFloatSO
, StaticIntSO
, StaticObjectSO
, StaticUnityObjectSO
) and can be derived to add more. Note: the generic base class, as far as I can tell, cannot be instanced as a ScriptableObject, but could probably be used for a SerializedField
.
Time that is stored and manipulated isolated within a static ScriptableObject. This allows you to not mess with, for example, Physics.timeScale
if you want to scale your time or pause your game. In addition, it allows multiple Time
instances at once. For an added bonus, it does not require an Update
loop, since all calculations are done with respect to the global Time.time
. This might not work well with the physics engine.
Easing functions ported from https://easings.net/ (GitHub). See the sample in /Samples/Easing
for a demo!
Installation instructions can be found on the wiki.