Skip to content

Releases: ArysWasTaken/UnityToolkit

UnityToolkit v2.0.1

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 25 Oct 20:45

In this release

  • Removed some redundant code
  • Removed FixPluginTypesSerialization
    • Unfortunately this plugin caused conflicts with some other mods so the decision was made to remove it

UnityToolkit v2.0.0

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 22 Oct 18:53

In this release

  • Removed all APIs and extension methods
    • They were not up to par and were probably only used by myself
  • Added VContainer
    • A fast dependency injection container designed for Unity, so it also works on injecting into Unity Objects
  • Added ZLinq
    • Adds high performance, zero-allocation LINQ by using ValueEnumerable
  • Added FixPluginTypesSerialization
    • Fixes a bug that affects all Unity Engine versions where references to custom [System.Serializable] classes/structs would not be deserialized correctly in Unity Objects
    • Thanks to Tarkin for finding this fix

UnityToolkit v1.2.0

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 21 Feb 23:27

Added new structures for mod developers:

UnityToolkit v1.1.0

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 11 Jan 00:29

In this release

  • Fixed issue where UniTask's PlayerLoopSystem was not being injected correctly
  • Updated UniTask from v2.5.5 to v2.5.10
    • See this link for the changelog
  • Added ZString v2.4.4 (this is the latest version available for Unity 2019.4.39f1) as a near zero-allocation string builder alternative
  • Added new extension methods for Unity MonoBehaviours/Components
  • Added new structures: Closure<TContext>, ObjectPool<T>, and IProcessor<TProcessor, TData>
    • Closure<TContext> is a struct to allow you to manually control the closure lifetime for a lambda/anonymous method instead of allowing C# to usually create closures for you, which can lead to unnecessary allocations. Recommended to use with ObjectPool<T>
    • ObjectPool<T> is a class that allows you to recycle a list of objects instead of creating new objects, which would generate garbage
    • IProcessor<TProcessor, TData> is an interface for the chain of responsibility (COR) pattern, where TProcessor is the processor class, while TData is the data you want to pass into the processor
  • Added a new ModulePatchManager class which can be used in your client mod plugin to automatically enable your mod patches
    • Usage:
      var currentAssembly = Assembly.GetExecutingAssembly();
      new ModulePatchManager(currentAssembly).EnableAllPatches();
    • You can also store the instance to a field/property/variable and reuse it to manually enable or disable specific patches:
      var currentAssembly = Assembly.GetExecutingAssembly();
      var patchManager = new ModulePatchManager(currentAssembly).EnableAllPatches();
      patchManager.DisablePatch<MyPatchClass>();
    • There is also an attribute to disable your patches without needing to do it at runtime (only works if you use UnityToolkit's ModulePatchManager):
      [DisablePatch]
      public class MyPatchClass : ModulePatch

VirusTotal scans

UnityToolkit v1.0.1

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 08 Jul 02:38

In this release

  • Updated UniTask from v2.5.4 to v2.5.5
    • See this link for the changelog

VirusTotal scans

UnityToolkit v1.0.0

Choose a tag to compare

@ArysWasTaken ArysWasTaken released this 20 May 19:22

In this release

  • Unity Collections extension
  • UniTask, a more efficient async Task implementation that's designed to work with Unity

VirusTotal scans