Releases: Orange-Panda/Unity-Utilities
Releases · Orange-Panda/Unity-Utilities
3.0.2
3.0.1
Fixed
- Fixed some
OverlayInterfacefields missing[SerializeField]attribute
3.0.0
This major release uproots a lot of longstanding issues with the infrastructure and organization of this package and therefore has many breaking changes. You will almost assuredly have to update your implementations and scripts will likely not compile and need to be updated upon updating to this release from a previous version.
Added
- Add
SetA(this Color, float)extension method - Add a few methods to
GameFileto specify type of file to write - Add
StringComparerparameter toLookupTableconstructor allowing customization of how keys are compared. - Add
TryGetPreviousTabandTryGetNextTabfunctions toTabGroup - Add
OverflowScrollingpublic get-only property toTabGroup - Add
ActionInvokedevent toActionEmitter - Add
FocusEveryFrameproperty toAutoScrollcomponent to control the active state of the component
Changed
⚠️ Breaking: Most classes have been moved to a new namespace to separate the package into different groups (to avoid some name conflicts)- Editor:
LMirman.Utilities->LMirman.Utilities.Editor - UI:
LMirman.Utilities->LMirman.Utilities.UI - Object Pool:
LMirman.Utilities->LMirman.Utilities.ObjectPool - Lookup Table:
LMirman.Utilities->LMirman.Utilities.LookupTable - Editor Tests:
LMirman.Utilities.Tests.Editor - Runtime Tests:
LMirman.Utilities.Tests.Runtime - All other classes are in the
LMirman.Utilitiesnamespace
- Editor:
⚠️ Breaking: RenameGameFileevents to no longer begin withOnterm⚠️ Breaking: Adjust the accessibility of many UI functions and fields⚠️ Breaking:ActionEmitterno longer invokesActionsUpdatedevent when anActionEventis invoked (use newly createdActionInvokedevent if relevant)⚠️ Breaking:ConfirmationWindowcanvas field has been removed and moved to the signature ofUIFunctions.CreateConfirmationWindow⚠️ Breaking:UIFunctions.CreateConfirmationWindowno longer loads the confirmation window throughResources.Load("UI/Confirmation Window"), the prefab must be provided via argument⚠️ Breaking: Change implementation of public serialized fields inOverlayEntryto protected serialized fields with public get-only properties- Update some extension methods to have
[Pure]attribute, notifying if return value is unused (these methods have no consequences if return value unused) - The
InBoundsextension method now targets theICollectioninterface allowing it to be used generically instead of just arrays and lists. - Improved documentation of many public methods (especially
GameFile) - Confirmation window creation via
UIFunctions.CreateConfirmationWindownow runs theCloseevent on previous window when creating a new window - Exposed
UIFunctions.CreateConfirmationWindowcreation throughMostRecentConfirmationstatic property - Expose many
ConfirmationWindowfields and methods toprotectedlevel to enable some custom behavior via inheritance
GitHub Tag Change
- Going forward releases will no longer have the
vprefix- Tags for previous releases will not be modified
v2.1.0
Added
- Added support for creating
OverlayManageroverlays on transforms other than the manager's transform
v2.0.1
Fixed
- Fixed unintentional exception being thrown in Poolable
OnDestroywhen a poolable object is destroyed fromObject.Instantiate
v2.0.0
This major release has been created due to several breaking changes to the ObjectPool system.
Upgrading to this release will require updating syntax of scripts that utilize poolables.
Added
- Added
Poolable.Instanceclass, enabling usage of poolables that expire when the object is returned. - Added
Poolable.Identifierproperty: a unique id that is assigned to a poolable when retrieved and revoked when returned.
Changed
- Poolable objects that are incorrectly created using
Object.Instantiateare now immediately destroyed and log an error. ⚠️ Breaking: TheObjectPool.Instantiatemethods now return aPoolable.Instanceinstead of thePoolableitself.- To update: replace variable type with Poolable.Instance.
- Use
Poolable.Instance.IsActiveto check if the instance is not null- Instances can be implicitly cast to bool for this check as well.
- Use
Poolable.Instance.Poolableto access the Poolable behavior as before- Will return null when the Poolable has been returned or disposed.
Removed
⚠️ Breaking: Removed public access toPoolable.poolSettings- The pool settings defined on the Poolable component should not be modified at runtime.
⚠️ Breaking: Removed set access for values ofPoolSettings- Modifying these values directly had very erratic behavior.
v1.10.0
Added
- Added public read-only property
PoolabletoPoolableBehaviour.
v1.9.0
Added
- Added JsonConvert error handling support to
GameFile- Can be overridden by setting
GameFile.jsonSerializeSettingsandGameFile.jsonDeserializeSettings
- Can be overridden by setting
v1.8.0
Added
- Added
int.LayerMaskContainsextension method - Added
Vector2.Rotateextension method - Added
[PublicAPI]attribute to most classes - Added methods to
UIGroup<T>to mutate list of items - Added
ItemIndexChangedevent toUIGroup<T> - Added public get-only properties to
UIGroup<T>for inspecting current values
Changed
- UIGroup now sets current item to
nulland current index to-1when disabling all items. Previously kept old value.
v1.7.1
Fixed
- Fixed logical error in
GameFileget byte[] functions