💥 = Breaking changes 🐛 = Bug fixes 📝 = Documentation 🏠 = Internal 🏃♀= Performance 💅 = Polish 🚀 = New features
- A "Smooth Workflow" section has been added under the CONTRIBUTING.md to explain how one can easily start contributing to Atoms whilst working from inside Unity. This was an issue as the atoms repository is not naturally compatible with Unity. (@Casey-Hofland)
- #276 This AtomGenerator has been improved to take no longer than about a single reimport. (@Casey-Hofland)
- #241 Value of a VariableInstancer in EditMode leads to NullRef. (@soraphis)
- #230 Compatibility with dynamic assemblies and different namespace/class conditions. (@soraphis)
- #229 Create button ease of use (@Casey-Hofland)
- Fixed ValueEquals for EquatableAtomVariable and EquatableAtomReference, which before the change caused a bug in AtomCollection. @AdamRamberg
- #224 Move Atoms Search back to its own sub menu. Having same sub path for both MenuItem and CreateAssetMenu is causing the menu to be removed. @AdamRamberg
- (@miikalo has joined as maintainer of Unity Atoms! 🥳
- #201 UnregisterAll in AtomEvent does not seem to work (@soraphis)
- #199 Null Reference Exceptions when trying to set VoidBaseEventReferenceListener event in code (@soraphis)
- #216 Conditions created do not appear under Atoms Search @AdamRamberg
- #218 Fixing SerializedDictionary Memory Leak @AdamRamberg
- #219 Fixing FSM instancer where _base always is null @AdamRamberg
- #220 Trigger initial events for instancers @AdamRamberg
- #190 Restructure tutorials and add two new tutorials (@miikalo)
- #193 Adding a little bit of clarity to installation (@mutmedia
- #207 Add FAQ to documentation pages (@miikalo)
- #206 Add tutorial for Conditions (@miikalo)
- #217 Move "Atoms Search" under "Unity Atoms" in the "Create" context menu @AdamRamberg)
- #186 Searchable menu for faster atom creation (@soraphis)
- #182 Add workaround for "Enter Play Mode" feature to enable initial values (@hazarartuner)
- #187 Asset based atoms generation (@soraphis)
- #191 Basic implementation of conditions for listeners (@miikalo)
- #202 Added for AtomReference a check to see if an Atom is actually assigned (@soraphis)
- #212 Unity Atoms Input System Integration (@Casey-Hofland)
- #221 Add OnCollisionHook and OnCollision2DHook (@Casey-Hofland)
- #168 Make IsUnityAtomsRepo OS agnostic (@jmacgill)
- #174 Update AtomBaseReferenceDrawer.cs (@soraphis)
- #178 Fix Sub FSM Value issue (@TriangularCube)
- #172 Instancer improvements. Adds the possibility to raise events from Event Instancers from the editor + makes base events none mandatory for Event Instancers. (@mutmedia)
- #179 Add a default Event at runtime for Changed and ChangedWithHistory if not present. (@mutmedia and @AdamRamberg)
- #180 Added option to clear Value List on OnEnable (@mutmedia and @AdamRamberg)
#169 Improvements to the internal templating engine used by the generator. (@jmacgill)
- Fixed clear button handler for StackTraces. (@AdamRamberg
- Fixed and rearranged StackTraces compiler flags. (@AdamRamberg
- #145 Removed duplicate check before adding an item to the list (@mnarimani)
- #147 Fix code generation bug (@AdamRamberg)
- #155 Fixing drawer for generated reference of complex struct type (@bguyl
- Fix bug where usage popup sometimes were hidden. (@AdamRamberg)
- #160 Hook up OnFixedUpdate handler. (@AdamRamberg)
- #164 Does not work in Unity 2018.3 (@AdamRamberg)
- Upgraded Example project to Unity version 2019.3.15f1. (@AdamRamberg)
- Add GetParent / GetValue extenstions for SerializedProperty. (@AdamRamberg)
- #128 Developer Description changed from Multiline to TextArea attribute (@IceTrooper)
- #140 Changes in GetEvent implementation to allow inheritance (@soraphis)
- #125 Add booleans to decide if Changed and/or ChangedWithHistory Events are triggered on AtomVariable OnEnable (@iruizmar)
- #157 Added forceEvent parameter for SetValue function on AtomVariable (@AdamRamberg)
- #159 Debug events by displaying stack traces for events. (@AdamRamberg)
- #120 Fix typos (@Enderlook)
- #123 Add Event Refs for Collections and Lists. (@AdamRamberg)
- Added missing assembly definition. (@AdamRamberg)
- Added missing meta. (@AdamRamberg)
- Include Editor folder for FSM package. (@AdamRamberg)
- Fixed a bug where it was not possible to change Variable value of Atoms of class type. (@AdamRamberg)
- General improvements to the documentation. (@AdamRamberg)
- 💥 Changed With History Event is now an
AtomEvent<IPair<T>>
instead of anAtomEvent<T, T>
. (@AdamRamberg) - Sync to Collection / List is now moved from Variable Instancers to it's own script. (@AdamRamberg)
- New example scene: InfiniteWaves.
- New package - Base Atoms. This is a mandatory package to use together with Core. However, breaking out the implementations from the Core makes the library easier to maintain. (@AdamRamberg)
- New package - FSM 🎉 (@AdamRamberg)
- Added Collection and List Instancers. (@AdamRamberg)
- Added an
OnInitialization
function toAtomTags
. (@AdamRamberg) - New script for resetting Variables called
VariableResetter
. (@AdamRamberg) - Added property id to Variables. (@AdamRamberg)
- beb7405 - Updated Example project to 2019.3.1f1. (@AdamRamberg)
- #93 - Added pre change transformers to Variables + Clamp Int / Float. Pre Change Transformers makes it possible to add functions to Variables that gets executed when a Variable is about to get changed and that transforms the value in some way, eg. clamps an IntVariable between two values. (@AdamRamberg)
- #110 - Added Variable Instancer, Event Reference, Atom Collection and Atom List (old Atom List renamed to Atom Value List). See docs. future blog post and PR for more information regarding these features. (@AdamRamberg)
- #113 - Added constructor with value to Reference classes. (@AdamRamberg)
- #114 - Added Replay functionality to Atom Events. (@AdamRamberg)
- #115 - Add util actions to Variables. (@AdamRamberg)
- #106 - Reactivate Generator function in Unity 2018.4. (@fakegood, @AdamRamberg)
- #109 - IsUnityAtomsRepo should never be settable. (@AdamRamberg)
- #109 - Fix indentation bug in variable drawer. (@AdamRamberg)
- #111 - Variables are now equal by reference instead of being equal by value. Should maybe been part of a major release because it is technically an API breaking changes, but considered a bug so instead bumping minior. (@AdamRamberg)
- #98 Unity v2018.4 Support. (@fakegood)
- #102 Fix Remove Tag from AtomTags and Fix Remove Tag Test . (@lucasrferreira)
- #100 Added installation options and badges for OpenUPM. (@favoyang, @AdamRamberg)
- Update example project to Unity 2019.2.17f1
- #91 Name OnTriggerHook class properly. (@AdamRamberg)
- #73 Add discord link to docs. (@AdamRamberg)
- #84 Changed AddComponentMenu names for Listeners/Hooks. (@IceTrooper)
- #78 Setter to AtomReference's Value was added. (@Saso222, @soraphis)
- #86 Parameterless AtomListener and AtomEvent. (@IceTrooper, @soraphis)
- #70 Better user guidance for working with AtomVariables. (@soraphis, @AdamRamberg)
- #89 Variable and Constant Drawers show a preview value. (@soraphis, @AdamRamberg)
The release notes were introduced halfway through the work with version 2.0.0
. The list below might therefore not me 100% complete.
- Fix indent and ui state issues of the
AtomDrawer<T>
- The repo has been split up to 6 different packages: core, mobile, mono-hooks, scene-mgmt, tags and ui
- Changed name on Atomic Tags to Atom Tags.
- New website launched - https://adamramberg.github.io/unity-atoms
- Improved / added documentation (READMEs).
- Automatic generation of API docs in markdown format from C# XML comments.
- Added internal tool to regenerate all existing Atoms. Nifty when doing changes that requires you to update all types of Atoms.
- Removed all
FormerlySerializedAs
attributes.
- Improved examples.
- Events can now be turned into IObservables making it possible to subscribe to them. this also makes Atoms compatible with UniRx.
- None generic base classes for all atoms
- Generator to generate new atoms with ease. Could be found under Tools / Unity Atoms / Generator.
- Custom icons for all atoms.
- Custom property drawers for all atoms.
- Variables now discards play mode changes.
- Public method
Reset
added to Variables.
- Unity Atoms is now using UPM (Unity Package Manager) - see the README on the new and improved way to use and depend on Unity Atoms
- Conditional Functions - Check a condition before executing an action.
- Molecules - Larger constructs / sets of atoms and other ScriptableObjects. First Molecule added is the Timer.
- Moved editor scripts to separate folder
- Rearranged the structure of Unity Atoms. Scripts are now on the highest level separated on type (int, float, etc.) instead of on concept (Game Event, Variables, etc.). This seems like a more natural way of structuring the project and makes it easier for developers to include / exclude the relevant stuff for their project.
- New type called TouchUserInput that keeps track of a user’s touch input. There is also a possibility to detect tap / double tap.
- Added new MonoHooks, for example OnPointerDownHook, OnButtonClickHook, OnTriggerStay and OnTriggerEnter.
- Added SetStringVariableValue
- Added type Collider
- Added UIContainer
- AtomicTags - Use tags the Unity Atoms way.
- Conditional Functions -> Check a condition before executing an action.
- Molecules - Larger constructs / sets of atoms and other ScriptableObjects. First Molecule added is the Timer.
- Moved editor scripts to separate folder
- Rearranged the structure of Unity Atoms. Scripts are now on the highest level separated on type (int, float, etc.) instead of on concept (Game Event, Variables, etc.). This seems like a more natural way of structuring the project and makes it easier for developers to include / exclude the relevant stuff for their project.
- New type called TouchUserInput that keeps track of a user’s touch input. There is also a possibility to detect tap / double tap.
- Added new MonoHooks. For example OnPointerDownHook, OnButtonClickHook, OnTriggerStay and OnTriggerEnter.
- New types added.
- Added SetStringVariableValue.
- fileName and order of CreateAssetMenu for better usability - 181426f
- Converted ColorVariable, Vector2Variable and Vector3Variable to ScriptableObjectVariable from EquatableScriptableObjectVariable. Before fix older versions of Unity complaint about issues with boxing conversion.
- Initial release of Unity Atoms