Skip to content

Latest commit

 

History

History
304 lines (200 loc) · 9.59 KB

File metadata and controls

304 lines (200 loc) · 9.59 KB

Changelog

[1.52.0] - 2025-06-02

Changed

  • Remove IsInLayerMask extension methods for Collision and Collider to eliminate the dependency on the Unity Physics built-in package.

[1.51.0] - 2025-05-26

Add

  • Add new List method extensions.
  • Add new ICollection method extensions.
  • Add new Clone() method to JsonArray and JsonObject classes.

Changed

  • Expose many extension methods (applicable only to objects from this library) available without requiring namespace imports.
  • Move several extension methods into the unified Ju.Extensions namespace.
  • Expose OnCollectionChanged method in JsonArray and JsonObject classes as a protected method.

Improved

  • Optimize many IEnumerable extension methods to avoid GC allocations in most scenarios.
  • Optimize several Input methods to avoid GC allocations.
  • Overhaul the internal JsonPrimitive class to avoid GC allocations when working with Json/HJson.

[1.50.0] - 2025-05-12

Add

  • Add INotifyCollectionChanged interface to JsonArray and JsonObject collections so they can be observables.

Changed

  • Replace HasSubscribers method with SubscriberCount in Observables.

[1.49.0] - 2025-04-08

Fixed

  • Fix Unity's PrefabPool service bug spawning cached prefab instances when they aren't active.
  • Remove .meta file for an empty old Unity folder.

[1.48.0] - 2025-03-26

Fixed

  • Fix compilation issues when the 'Implicit Usings' NET project property is enabled.
  • Fix warnings when the 'Nullable' NET project property is enabled.
  • Add missing .meta files for Unity.

[1.47.0] - 2025-03-24

Fixed

  • Fix collisions between System.Math functions and the Ju.CoreMath package when used together in NET native or Godot projects.

[1.46.0] - 2025-03-24.

Added

  • Add new Godot integration to the new Runtime/Integrations folder.
  • Add a .targets file to automatically include and compile the source files in consumer projects for seamless source-only package integration.

Changed

  • Disable context in logs by default.
  • Move Unity integration to a new Runtime/Integrations folder.
  • Change the NuGet package type to a source-only package.
  • Add a new Directory.Build.props file to improve local development for Godot.
  • Configure local development to target net8.0 when working with Godot.

Improved

  • Include LICENSE.md and CHANGELOG.md files in the final NuGet package.
  • Update tags in package.json.
  • Update the .editorconfig file.
  • Update VSCode settings.json.

[1.45.0] - 2025-03-13

Improved

  • Include README.md in the nuget package.
  • Update README.md with instructions to install the package.

[1.44.0] - 2025-03-13

Improved

  • Update csproj file to allow creating a nuget package.
  • Update .gitignore to exclude autogenerated solution files by dotnet.

[1.43.0] - 2022-03-06

Added

  • Add warmup capacity method to the prefab pool service.
  • Add more prefab pool service helper extension methods.

Changed

  • Remove transform parent-relative position when Spawning or Recycling prefabs.

Improved

  • Allow to count filtering active prefabs in the prefab pool service.
  • Disable prefab gameobject container on prefab pool service start.

[1.42.0] - 2022-03-03

Fixed

  • Fix stack overflow when throwing exceptions inside an event callback in the EventBus service.
  • Fix hexadecimal string conversion to Color when the string starts with the hash character.

[1.41.0] - 2021-10-11

Added

  • Add cast from Guid to string.
  • Add Guid, Color and Color32 casting for JNode.
  • Add DateTime, Guid, Color and Color32 casting for JDict.
  • Add missing cast support for DateTime, Guid, Color, Color32 types in DataTypeConverter.

Changed

  • Rename some Unity Color related casting methods.

Improved

  • Add Gradient generic class as base for ColorGradient and ValueGradient.
  • Update README.

[1.40.0] - 2021-10-10

Added

  • Add ValueGradient and ColorGradient classes.
  • Add Unity inspector ReadOnly attribute.
  • Add Color and Color32 cast support.
  • Add DateTime cast helper extension methods.
  • Add HasValue helper method to JsonObject class.
  • Add Guid and DateTime (from unix timestamp) casting from string.
  • Add JSON GetValue helper methods for Guid and DateTime (from unix timestamp).
  • Add JSON GetValue helper methods for Color and Color32.
  • Add IsValidHjson helper extension method for string.
  • Add JData cast helper methods for Guid, Color and Color32.

Fixed

  • Revert BehaviourLinkHandlers will now return true in IsDestroyed property if alwaysActive is false and the Behaviour is disabled.
  • Fix DateTime cast to string method ignoring format parameter.

Improved

  • Check if key exists when getting values in JSON objects.
  • Allow default fallback value for DateTime casting from unix timestamp strings.

[1.39.0] - 2021-06-19

Added

  • Add Unity Hot Reloading compatibility.
  • Add Unity custom property drawers for Color and Color32 structs.
  • Add Unity custom property drawers for TimeSince and TimeUntil structs.
  • Add new extension methods WithRed, WithGreen, WithBlue and WithAlpha to Color and Color32 structs.
  • Add new SerializableDictionary classes.
  • Add new SerializableType struct.

Changed

  • BehaviourLinkHandlers will now return true in IsDestroyed property if alwaysActive is false and the Behaviour is disabled.
  • Remove redundant extension methods for FSM class.
  • Move SimpleFSM to FSM folder.

Fixed

  • Fix StopCurrentEventPropagation method for EventBus service.

Improved

  • Rewrited SimpleFSM class.
  • Move UnityQuit and UnityQuitRequested events to native Core.
  • Make all Color structs serializable.
  • Make Span, TimeSince, TimeUntil structs serializable.

[1.38.0] - 2021-05-31

Added

  • Add new TimeSince, TimeSinceUnscaled, TimeUntil and TimeUntilUnscaled structs.
  • Add new string extension method to remove invisible characters.
  • Add new string extension method to sanitize paths removing path/file invalid characters.
  • Add new extension methods for Int values (IsWithin and IsBetween).
  • Add new Base64 extension methods for string.
  • Add new MD5 extension methods for string and byte arrays.
  • Add new Clamp01 extension method to Color.
  • Add new Cast method to get a formatted size string.
  • Add new Cast methods to get a formatted time from int or long values.
  • Add new constructor to ObjectPool with desired capacity.
  • Add new Swap method to JDict and JList classes.
  • Add new JNode related extension methods for IService, State and Behaviour.
  • Add new helper GetDataClass methods to initialize class based JData nodes in JDict nodes.
  • Add new JNodeLinkHandler class.

Changed

  • Change State default Condition return value to false.
  • Remove default clamping to Color struct to allow HDR colors.

Fixed

  • Fix Unity Input Manager service provider error on MacOS.
  • Fix JData Bind methods when node ref is null.
  • Fix JNode missing events on Detach.

Improved

  • Add IEquatable interface to all structs.
  • JNode subscribe events now have event type info (Add, ValueChange, Move, Remove, Clear).
  • Remove the need to use the Value property when using JData nodes as values.
  • Improve usage of generic JList nodes on foreach iterations or when using the indexer operator.
  • Reduced (or removed in some scenarios) the GC allocations when using JNodes.

[1.37.0] - 2021-05-24

Added

  • Add csproj file to allow compiling and using the library for native NET projects.

Fixed

  • Remove all NET Reflection usage.

Improved

  • Remove usage of NET Reflection (Activator.CreateInstance) in ServiceContainer and CacheService classes.
  • Improve Hjson coding convention.
  • Update VSCode settings.json file to handle generated folders by dotnet compiler.
  • Update .editorconfig to include generated folders by dotnet compiler.
  • Update .gitignore to exclude generated folders by dotnet compiler.

[1.36.0] - 2021-05-21

Added

  • Add maxDepth parameter to the ToHjson/ToJson methods for JNode.
  • Add maxDepth parameter to the ToString method for JNode.
  • Add generic JList class.
  • Add new GetFriendlyName extension method for Type.

Improved

  • Separate all IService, State and Behaviour extensions in different files.
  • Improve type naming in all log messages.
  • Update README.

[1.35.0] - 2021-05-17

Added

  • Add new Data feature (JNode, JDict, JList, JData, JRef classes).
  • Add extensions methods for the new Data feature.
  • Add customized Hjson/Json library.
  • Add Hjson/Json extension methods.
  • Add new Cast class to convert the type of arbitrary data without throwing exceptions.
  • Add new DataTypeConverter class to convert the type of arbitrary data.
  • Add several new constructors to Clock, Timer and FrameTimer classes.
  • Add new Reset method to ITimer interface.
  • Add new extension methods for IDictionary.

Changed

  • Rename DataService to CacheService.
  • Rename some extension methods static classes.
  • Move observable extension methods to Ju.Observables namespace.
  • Move GamepadController class to the Ju.Input namespace.
  • Move KeyboardController class to the Ju.Input namespace.
  • Move MouseController class to the Ju.Input namespace.
  • Move InputAction class to the Ju.Input namespace.
  • Move InputPlayer class to the Ju.Input namespace.

Fixed

  • Fix LogUnityService error when logging messages with curly braces.
  • Fix Observable Value set property.

[1.34.0] - 2021-04-12

Fixed

  • Fix InputService load service error.
  • Fix EventBus stack overflow bug when a subscriber action exception is raised and other cases.
  • Fix Input delta mouse precision when using both providers from Unity.
  • Fix Unity service callback bug when trying to close the app.
  • Fix Stop method in timers.

Improved

  • Add new internal service cache for all internal service usage.