Skip to content

Releases: StephanHooft/unity-tools

Release v8.0.0

22 Jan 17:09

Choose a tag to compare

This release makes changes to the StateMachines framework, which break compatibility. Projects will need to be modified if using this version or beyond.

  • IState, IStateMachine, State, and StateMachine have all been discontinued. Their reliance on state registers to transition to another state was messy, and gave states the explicit capability to interact with one another. This is undesirable.
  • IStateT, IStateMachineT, StateT and StateMachineT have been modified. They no longer use a state register, and a state's update methods must now return a clean . This allows enum-based states to operate independently, with their state machine being the only one able to locate the next state to transition to.
  • As a result, StateT and IStateT may no longer return null. If a state update should not cause a state transition, return the enum's default value instead. It is recommended to have the enum's 0 value remain unused (don't associate an IStateT with it) and return this where you would previously return null.

Release v7.7.0

10 Aug 11:44

Choose a tag to compare

Introduced "Variables" namespace, with a series of classes to track variables by reference to a ScriptableObject. This is useful to decouple data and retain flexibility. Classes are based on code shown in Ryan Hipple's Unite Austin 2017 presentation on Game Architecture with ScriptableObjects.

Variables, ScriptableObjects to store a field value

  • BoolVariable
  • ColorVariable
  • DoubleVariable
  • FloatVariable
  • IntVariable
  • StringVariable
  • Vector2Variable
  • Vector3Variable

References, classes to store a local value or a reference to a Variable

  • BoolReference
  • ColorReference
  • DoubleReference
  • FloatReference
  • IntReference
  • StringReference
  • Vector2Reference
  • Vector3Reference

(All references have matching custom PropertyDrawers for use in Editor.)

Note: The "StephanHooft.VariableRanges" namespace was removed. Replacing with "StephanHooft.Variables.Ranges" should fix any issues.

Release v7.5.0

03 Aug 14:44

Choose a tag to compare

Added scale extension methods for Vector2/Vector3

Release v7.4.0

22 May 21:07

Choose a tag to compare

VariableRanges update

* Added "*" and "/" operators to variable range structs
* Fixed accessibility of FloatRange fields

Release v7.2.1

18 Apr 15:37

Choose a tag to compare

StateMachines no longer hide as many exceptions

Release v7.1.0

15 Apr 20:52

Choose a tag to compare

* New double extension methods
* New float extension methods
* New int extension methods

Release v7.0.0

15 Apr 12:28

Choose a tag to compare

  • Upgraded package to C#8.0 - Unity 2021.3 now required
  • Default implementations for the Enter/Update/Exit methods of states
  • Some structs are now readonly
  • Reorganised folders
  • MultiKeyDictionary/SortKeyDictionary now share one "Collections" namespace

Release v6.1.0

11 Apr 01:08

Choose a tag to compare

* Further modifications to StateMachines
* Added UnderOverOn methods to VariableRanges

Release v6.0.0

10 Apr 22:06

Choose a tag to compare

* Modified StateMachines (again), so that a state's "Enter" method can process a deltaTime argument
* Updated README.md

Release v5.0.0

09 Apr 09:59

Choose a tag to compare

* Introduced FloatRange, IntRange, and DoubleRange structs
* Introduced a range attributes for the above range-type structs
* Removed MinMaxAttribute
* Renamed some extension methods