- Remove IsInLayerMask extension methods for Collision and Collider to eliminate the dependency on the Unity Physics built-in package.
- Add new List method extensions.
- Add new ICollection method extensions.
- Add new Clone() method to JsonArray and JsonObject classes.
- 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.
- 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.
- Add INotifyCollectionChanged interface to JsonArray and JsonObject collections so they can be observables.
- Replace HasSubscribers method with SubscriberCount in Observables.
- Fix Unity's PrefabPool service bug spawning cached prefab instances when they aren't active.
- Remove .meta file for an empty old Unity folder.
- 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.
- Fix collisions between System.Math functions and the Ju.CoreMath package when used together in NET native or Godot projects.
- 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.
- 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.
- 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.
- Include README.md in the nuget package.
- Update README.md with instructions to install the package.
- Update csproj file to allow creating a nuget package.
- Update .gitignore to exclude autogenerated solution files by dotnet.
- Add warmup capacity method to the prefab pool service.
- Add more prefab pool service helper extension methods.
- Remove transform parent-relative position when Spawning or Recycling prefabs.
- Allow to count filtering active prefabs in the prefab pool service.
- Disable prefab gameobject container on prefab pool service start.
- 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.
- 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.
- Rename some Unity Color related casting methods.
- Add Gradient generic class as base for ColorGradient and ValueGradient.
- Update README.
- 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.
- 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.
- Check if key exists when getting values in JSON objects.
- Allow default fallback value for DateTime casting from unix timestamp strings.
- 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.
- 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.
- Fix StopCurrentEventPropagation method for EventBus service.
- Rewrited SimpleFSM class.
- Move UnityQuit and UnityQuitRequested events to native Core.
- Make all Color structs serializable.
- Make Span, TimeSince, TimeUntil structs serializable.
- 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.
- Change State default Condition return value to false.
- Remove default clamping to Color struct to allow HDR colors.
- Fix Unity Input Manager service provider error on MacOS.
- Fix JData Bind methods when node ref is null.
- Fix JNode missing events on Detach.
- 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.
- Add csproj file to allow compiling and using the library for native NET projects.
- Remove all NET Reflection usage.
- 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.
- 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.
- Separate all IService, State and Behaviour extensions in different files.
- Improve type naming in all log messages.
- Update README.
- 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.
- 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.
- Fix LogUnityService error when logging messages with curly braces.
- Fix Observable Value set property.
- 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.
- Add new internal service cache for all internal service usage.