Skip to content

Releases: Orange-Panda/Unity-Utilities

3.0.2

Choose a tag to compare

@Orange-Panda Orange-Panda released this 26 Mar 06:30

Fixed

  • Fixed AspectRatioCalculator not working if RecalculateAspect() called before Start

3.0.1

Choose a tag to compare

@Orange-Panda Orange-Panda released this 27 Jan 21:17

Fixed

  • Fixed some OverlayInterface fields missing [SerializeField] attribute

3.0.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 26 Jan 03:42

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 GameFile to specify type of file to write
  • Add StringComparer parameter to LookupTable constructor allowing customization of how keys are compared.
  • Add TryGetPreviousTab and TryGetNextTab functions to TabGroup
  • Add OverflowScrolling public get-only property to TabGroup
  • Add ActionInvoked event to ActionEmitter
  • Add FocusEveryFrame property to AutoScroll component 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.Utilities namespace
  • ⚠️Breaking: Rename GameFile events to no longer begin with On term
  • ⚠️Breaking: Adjust the accessibility of many UI functions and fields
  • ⚠️Breaking: ActionEmitter no longer invokes ActionsUpdated event when an ActionEvent is invoked (use newly created ActionInvoked event if relevant)
  • ⚠️Breaking: ConfirmationWindow canvas field has been removed and moved to the signature of UIFunctions.CreateConfirmationWindow
  • ⚠️Breaking: UIFunctions.CreateConfirmationWindow no longer loads the confirmation window through Resources.Load("UI/Confirmation Window"), the prefab must be provided via argument
  • ⚠️Breaking: Change implementation of public serialized fields in OverlayEntry to 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 InBounds extension method now targets the ICollection interface 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.CreateConfirmationWindow now runs the Close event on previous window when creating a new window
  • Exposed UIFunctions.CreateConfirmationWindow creation through MostRecentConfirmation static property
  • Expose many ConfirmationWindow fields and methods to protected level to enable some custom behavior via inheritance

GitHub Tag Change

  • Going forward releases will no longer have the v prefix
    • Tags for previous releases will not be modified

v2.1.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 26 Jun 02:42

Added

  • Added support for creating OverlayManager overlays on transforms other than the manager's transform

v2.0.1

Choose a tag to compare

@Orange-Panda Orange-Panda released this 18 Nov 23:58

Fixed

  • Fixed unintentional exception being thrown in Poolable OnDestroy when a poolable object is destroyed from Object.Instantiate

v2.0.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 18 Nov 20:17

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.Instance class, enabling usage of poolables that expire when the object is returned.
  • Added Poolable.Identifier property: a unique id that is assigned to a poolable when retrieved and revoked when returned.

Changed

  • Poolable objects that are incorrectly created using Object.Instantiate are now immediately destroyed and log an error.
  • ⚠️Breaking: The ObjectPool.Instantiate methods now return a Poolable.Instance instead of the Poolable itself.
    • To update: replace variable type with Poolable.Instance.
    • Use Poolable.Instance.IsActive to check if the instance is not null
      • Instances can be implicitly cast to bool for this check as well.
    • Use Poolable.Instance.Poolable to access the Poolable behavior as before
      • Will return null when the Poolable has been returned or disposed.

Removed

  • ⚠️Breaking: Removed public access to Poolable.poolSettings
    • The pool settings defined on the Poolable component should not be modified at runtime.
  • ⚠️Breaking: Removed set access for values of PoolSettings
    • Modifying these values directly had very erratic behavior.

v1.10.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 15 Nov 18:46

Added

  • Added public read-only property Poolable to PoolableBehaviour.

v1.9.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 08 Nov 20:06

Added

  • Added JsonConvert error handling support to GameFile
    • Can be overridden by setting GameFile.jsonSerializeSettings and GameFile.jsonDeserializeSettings

v1.8.0

Choose a tag to compare

@Orange-Panda Orange-Panda released this 11 Oct 03:09

Added

  • Added int.LayerMaskContains extension method
  • Added Vector2.Rotate extension method
  • Added [PublicAPI] attribute to most classes
  • Added methods to UIGroup<T> to mutate list of items
  • Added ItemIndexChanged event to UIGroup<T>
  • Added public get-only properties to UIGroup<T> for inspecting current values

Changed

  • UIGroup now sets current item to null and current index to -1 when disabling all items. Previously kept old value.

v1.7.1

Choose a tag to compare

@Orange-Panda Orange-Panda released this 13 Jun 01:51

Fixed

  • Fixed logical error in GameFile get byte[] functions