All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
InterfaceReference<T>
allows serializing objects that implement an interface.
- Removed
AspectRatioContainer
for Unity versions below 2023.2, because the current implementation uses features that are not available in older versions.
InputActionMap.SetEnabled
that callsEnable
orDisable
depending on the parameter.
1.4.0 - 2024-04-21
TryGetComponentInChildren
- Extended
Array.IsValidIndex
to be usable on allICollection
types.
IdenticalTransformOverrides
now also checks for individual euler angles. (-0, 90, -0) == (0, 90, 0)
- Custom PropertyDrawer for
Map
is now also applied to subclasses ofMap
. - Proper
ToString
forCouple
,Triple
,MinMax
, andOptionalValue
types.
1.3.0 - 2024-03-15
- WoldPose and LocalPose
- Each is a lightweight struct that contains a
position
and arotation
field. Similar to Unity'sTransform
but without scale, parent, children, component, and other overhead. - They contain the same data, but are semantically different, as they encode the space in which they are to be interpreted.
- Various
TransformXXX
andInverseTransformXXX
methods are provided to convert objects between spaces. WorldPose
andLocalPose
can be implicitly created fromTransform
. When implicit conversions from other custom types are added,WorldPose
andLocalPose
can be used as general purpose parameter that reduce the amount of overloads needed.
- Each is a lightweight struct that contains a
1.2.0 - 2024-02-24
- UI Toolkit Custom Controls:
AspectRatioContainer
that maintains a configured aspect ratio.
1.1.0 - 2024-02-21
- Extensions to Prefabs:
RevertIdenticalTransformOverrides
reverts unused overrides to local position and rotation to reduce prefab and scene file size and noise.HasIdenticalTransformOverrides
returns whether RevertIdenticalTransformOverrides has something to revert.
- Extensions to UI Toolkit:
SetActive
forVisualElement
that mimicsGameObject.SetActive
.
- Changes to Editor Styling:
Vector4
field in one line (likeVector3
andQuaternion
fields).- Prevent clipping of MinMaxSlider Handles at edges by added padding.
- Extensions to Unity Objects:
SetPositionAndRotation
that takes aTransform
as parameter.Vector3.XZ
andVector2.X0Y
swizzling.
1.0.0 - 2023-10-09
- Serializable
Couple
,Triple
,Map
,MinMax
, andOptionalValue
types with custom PropertyDrawers MinMaxSlider
attributeAutoSetup
attribute that tries to wire component references automatically- Extensions to Unity Vector types:
.With
,.Add
, and.Rotate
modifications, e.g.Vector3 v = transform.forward.With(y: 0f);
- Component wise
Mul
andDiv
SqrDist
semantic shorthandVector3.XY
swizzling
MathV
static class with component wise analogs of Mathf methods:Abs
,Round
,Max
,Clamp
, andRandom
that operate on a single vectorMin
andMax
that operate on two vectorsMax
andSum
that iterate over the components of a single vectorMinMax
that returns an ordered pair
- Extensions to C# System types:
Array.IsValidIndex
as guard against ArrayIndexOutOfBounds exceptionsIDictionary.GetOrCreate
KeyValuePair.Deconstruct
- Extensions to Unity Physics:
Overlap*
,Check*
, and*Cast
methods that take*Collider
as a parameter- Layer to LayerMask conversion
- Extensions to Unity Objects:
HasComponent
GetOrAddComponent
TryGetComponentInParent
GetComponentsInOnlyChildren
GetComponentsInOnlyCousins
- Static
Utils
class with the remaining utilities:EnumValues
iterator, e.g.foreach(var value in Utils.EnumValues<SomeEnum>())
ReturnValueAndLogError
utility for lean switch expressions