9.7.0 (2021-11-30)
- UnityIntegration: invoke RequestScriptReload by reflection (2b8436f)
The EditorUnity class now has a RequestScriptReload method that can be used to ensure the weavers are run on first compilation. This will resolve the issue where weavers are not run first time on Unity 2020 or above.
Signed-off-by: Simon Ferquel [email protected]
- README.md: update title logo to related-media repo (8ac7fcb)
The title logo is now located on the related-media repo.
9.6.6 (2021-02-04)
- deps: use latest pipeline templates (e9dcf5d)
The latest pipeline template will attempt to force set a Unity version if one is not provided to ensure Unity can be installed.
9.6.5 (2019-12-21)
- MemberChange: refactor inspector logic to be more composable (d82413c)
The previous refactor of the custom unity InspectorEditor did not split out enough of the logic into their own methods so they were not completely usable independently.
This refactor splits out the methods even more so they are more independent and can be easily used on their own or overridden.
9.6.4 (2019-12-21)
- deps: use latest pipeline templates (8269efb)
There is an issue with the previous template not correctly building the Unity software image. This latest version should fix the issue.
- MemberChange: refactor custom inspector logic to be composable (17abe41)
The custom unity InspectorEditor has now been refactored so the logic within the OnInspectorGUI has been separated out into more logical chunks so these different methods can be called separately or overriden where required.
The functionality of the inspector has not changed in anyway so this fix is purely just making method logic more accessible.
9.6.3 (2019-12-02)
- MemberChange: prevent Before/AfterChange being called at edit time (7d6077b), closes /github.com/ExtendRealityLtd/Malimbe/blob/master/Sources/FodyRunner.UnityIntegration/InspectorEditor.cs#L85-L88
There was a previous fix (https://github.com/ExtendRealityLtd/Malimbe/commit/40baf008d804d34f00ffea6aac5c02fbd9362ef0) that attempted to fix the following issue: (This is being described in detail as the message on the other commit is unhelpful).
The Malimbe custom Unity InspectorEditor would only run the
BeforeChange
andAfterChange
methods when valid ChangeHandler attributes were found in the component (e.g.OnBeforeChange()
andOnAfterChange()
. However, when using a Zinnia ObservableList it would not raise the component events when the Elements array was updated in the inspector.This is due to the Zinnia ObservableList using a custom inspector (
ObservableListEditor
) which extends the Malimbe InspectorEditor and overrides theBeforeChange()
andAfterChange()
methods to raise events when the list elements have items added/removed from them.The problem rose from the ObservableList component does not contain any ChangeHandler attributes and therefore the
ChangeHandlerMethodInfos
would be empty and so the check in theOnInspectorGUI()
method
9.6.2 (2019-11-27)
- RequiredBehaviourState: don't use isActiveAndEnabled (8d73d3d)
Unity contains a bug wherein
isActiveAndEnabled
isfalse
even though bothenabled
andgameObject.activeSelf
aretrue
.isActiveAndEnabled
is largely a convenience and by checkingenabled
andgameObject.activeInHierarchy
this issue is avoided while remaining functionally identical.
9.6.1 (2019-10-28)
- README.md: provide more concise release data and update info (9e87ea2)
The Releases section has been removed and is now just a simple badge at the top of the README. There has been an additional section in
Getting Started
on how to update the package via the Unity Package Manager.The links have also been ordered in the order of appearance in the document.
9.6.0 (2019-10-26)
- .github: use organization .github repository (a3ea4ae)
GitHub provides a mechanism where a global organization .github repo can be used as a fallback to provide default community health files instead of repeating the same files across multiple repos.
ExtendRealityLtd now has a
.github
repo which should be used as it provides the correct details for this repo.The README.md has been updated to provide definitive links to the relevant files.
- add dependabot configuration (d454af5)
9.5.3 (2019-10-20)
- CONTRIBUTING: do not include copyright notices (44dd7bc), closes /help.github.com/en/articles/github-terms-of-service#6
Authors will continue to retain the copyright for the code committed but do so under the license stated in the repository as outlined in the [GitHub Terms Of
- deps: use latest pipeline templates (e6c200d)
9.5.2 (2019-10-15)
- Runner: duplicated configuration files result in warnings (727c8ad)
The fix is to just make sure the found configuration files are distinct.
9.5.1 (2019-10-14)
- ci: back to npmjs.com (563988f)
GitHub's npm feeds only allow publishing scoped packages, but UPM doesn't support those.
9.5.0 (2019-10-14)
- ci: publish package on GitHub feed (9c5021e)
- ci: use latest CD template (2d10e3a)
- devops: use latest DevOps templates (fa556c6)
- packaging: remove unused package manifest field (d6e4ecb)
9.4.4 (2019-10-13)
- packaging: Unity editor assemblies path (35b1cb2)
9.4.3 (2019-06-16)
- MemberChange: allow subclasses to handle property changes (40baf00)
9.4.2 (2019-03-25)
- MemberChange: only show undo/redo warning for change handlers (e4cbe10)
9.4.1 (2019-03-23)
- MemberChange: don't reset changes to other fields in handlers (56e9357), closes #39
- MemberChange: fix referencing fields from base types (91a0355)
- MemberChange: only look up change handlers once (beb5507)
9.4.0 (2019-03-21)
- MemberChange: exception thrown when using multiple attributes (d227180)
- MemberChange: only show undo/redo warning at runtime (41661a5)
- MemberChange: allow handling changes to superclass member (33c2c2a)
9.3.1 (2019-03-20)
- MemberChange: allow undo operations but warn against using them (b29c017)
- MemberChange: don't do change handler checks multiple times (311643d)
- MemberChange: support multiple field store instructions (7e504ff)
9.3.0 (2019-03-16)
- MemberChange: help preventing infinite loops (d490ded)
9.2.2 (2019-03-12)
- packaging: use latest Unity version (e8fa0d5)
- UnityIntegration: improve performance by deferring lookups (b83d158)
9.2.0 (2019-03-12)
- UnityIntegration: allow customizing InspectorEditor (fc33861)
9.1.2 (2019-03-09)
- UnityIntegration: only call change handlers for changed member (ed3f93f)
- XmlToTooltip: single XML tag in single summary (b066080)
9.1.1 (2019-03-06)
- MemberChange: support generic types (d93148c)
9.1.0 (2019-03-04)
- UnityIntegration: exception when unselecting scripts in project (dfc8628)
- MemberChange: only call change methods when isActiveAndEnabled (d0b0120)
9.0.0 (2019-03-04)
- PropertySerialization: fix null reference exception (97fdf72)
- UnityIntegration: remove manual weaving menu item entry (1404254)
- PropertyValidation: remove property validation (1e1c8f7)
- MemberChange: overhaul PropertySetter for Unity usage (173a358)
- MemberChange:
CalledBySetterAttribute
has been replaced withCalledBeforeChangeOfAttribute
andCalledAfterChangeOfAttribute
. Please see the latest Readme for more details. - PropertyValidation: Property validation has been removed from Malimbe. For an alternative solution please look out for a future version of this project or Zinnia.
8.2.4 (2019-02-27)
- PropertyValidation: import generic arguments (ca0fcd3)
8.2.3 (2019-02-24)
- Runner: prevent exception when no config is used (164877f)
- UnityIntegration: prevent NullReferenceException (62b55a4)
- UnityIntegration: only reload assemblies that changed (354296a)
8.2.2 (2019-02-18)
- run weavers on nested types where necessary (28b4fde)
- XmlToTooltip: support multiple XML tags in single summary (049d3fc)
8.2.1 (2019-02-16)
- UnityIntegration: ensure weaved assemblies are picked up (9a1c50b)
- UnityIntegration: prevent NullReferenceException (11b1c4e)
8.2.0 (2019-02-13)
- UnityIntegration: prevent serialization issues (3ef85e2)
- SerializedProperty: support properties with just a get or set (afb09cf)
8.1.4 (2019-02-05)
- UnityIntegration: stop infinite assembly reload (9ef91c3)
8.1.3 (2019-02-05)
- UnityIntegration: tell Unity to reload assemblies when needed (6350a71)
8.1.2 (2019-02-05)
- UnityIntegration: delay weaving process until Unity is ready (c280dc7)
- UnityIntegration: remove unnecessary .asmdef files (956a167)
8.1.1 (2019-02-05)
- PropertyValidation: support generic base classes (056b4cd)
8.1.0 (2019-02-03)
- XmlToTooltip: fall back to manual file lookup for unfound types (bbb327e)
- XmlToTooltip: log errors when no documentation was found (b8fcef9)
- PropertySetter: allow injecting into superclass properties (a9781c8)
- PropertySetter: reuse the created local variable (1e937e7)
8.0.0 (2019-01-29)
- PropertySetter: allow using property inside called method (ba8d4ac)
- PropertySetter:
SetsPropertyAttribute
was renamed toCalledBySetterAttribute
and the expected signature of the annotated method changed. Please see the latest Readme for details.
7.0.0 (2019-01-27)
- Runner: combine log level from all configuration files (8fba11d)
- Runner: only search for configurations and weavers once (3f11469)
- XmlToTooltip: don't search for unnecessary type information (8ea16d9)
- Runner: only run on specified assemblies (1a45cc6)
- Runner: The assemblies to process have to be specified
using the XML element
AssemblyNameRegex
from now on. Specifying none will result in no assembly being processed and a warning being logged.
6.1.1 (2019-01-22)
6.1.0 (2019-01-21)
- packaging: add missing package files (7b6ca62)
- BehaviourStateRequirement: allow returning early in Behaviours (ee9955a)
6.0.0 (2019-01-20)
- only run when attribute is used (3cfdc4b)
- Any weaver usage now is driven by explicitly annotating each member that Malimbe's weavers should act on. For more information read the latest Readme.
5.2.0 (2019-01-13)
- XmlToTooltip: allow customizing the XML tag replacement (3da2ae3)
5.1.0 (2019-01-12)
- Runner: don't cache the found configurations and weavers (19c3533)
- SerializedProperty: change field name in abstract classes (a623ec2)
- SerializedProperty: match auto-property backing field exactly (2f25dd4)
- XmlToTooltip: annotate backing fields of properties (0fcd7e9)
5.0.0 (2019-01-12)
- UnityIntegration: don't implicitly reference any plugin .dll (1e75894)
- UnityIntegration: Referencing a Malimbe Editor assembly has to be done explicitly from now on. Use Assembly Definition Files and their inspector to reference the needed assemblies manually.
4.0.0 (2019-01-11)
- only cache types of needed assemblies (693b0a0)
- ClearProperty: add support for generics in declaring type (203df85)
- ClearProperty: don't inject into existing method (b52819d)
- UnityIntegration: compile all assemblies against netstandard2.0 (20dcc67)
- UnityIntegration: reference runtime assembly in the editor one (f801e5c)
- ValidateProperties: add support for generics in declaring type (9137635)
- ValidateProperties: ensure to inject at end of existing method (79f9f7c)
- ClearProperty: The ClearPropertyMethod weaver no longer injects anything into the Clear method in case it already exists. An info logging statement has been added that can help to find the Clear method implementations and ensure it clears the property manually.
3.0.0 (2019-01-07)
- SerializedProperty: invert the hidden-in-inspector setting (2d04301)
- SerializedProperty: The argument passed in the
SerializedProperty
attribute constructor to hide the field in the inspector is now negated. Uses need to be updated to pass the negation of what they previously passed. The default value of the parameter has been updated which means the default constructor call doesn't need to be changed to upgrade to this change.
2.0.0 (2019-01-07)
- Runner: don't leak for already processed assemblies (159e88a)
- Runner: gracefully fail for unfound assemblies (f0b60f9)
- Runner: prevent access to disposed closure (8ead72b)
- SerializedProperty: help serializing properties, not fields (40b6511)
- UnityIntegration: only weave each assembly once (cbfd2e8)
- UnityIntegration: unnecessary creation of an intermediate list (6d65c74)
- UnityIntegration: weave all assemblies on load (d23bacb)
- UnityIntegration: allow weaving all assemblies manually (b87448b)
- UnityIntegration: show progress when weaving all assemblies (2f1bb4c)
- SerializedProperty: Fields can no longer be "changed" into properties.
Instead of using a field and annotating it with
FieldToPropertyAttribute
use a property and annotate it withSerializedPropertyAttribute
. Auto-implemented properties as well as regular ones are supported and the only requirement is to have a getter and setter (of any accessibility level).
1.3.1 (2019-01-06)
- UnityIntegration: prevent loading assemblies (1deef2f)
1.3.0 (2019-01-05)
- UnityIntegration: rename assembly definition files (3b24740)
1.2.0 (2019-01-05)
- UnityIntegration: Unity doesn't pick up changes (3205065)
- Runner: return whether the assembly was processed (7222b22)
1.1.1 (2019-01-05)
- release: zip for GitHub release (c9dae5e)
1.1.0 (2019-01-05)
- release: zip for GitHub release (bc75269)
1.0.6 (2018-12-23)
- UnityIntegration: Unity .meta files for releases (aa3b48a)
1.0.5 (2018-12-17)
- packaging: remove unused directory hint (4f5a912)
1.0.4 (2018-12-17)
- packaging: include sources without nesting the folders (c2de9d8)
1.0.3 (2018-12-17)
- UnityIntegration: use Unity's package naming convention (d160221)
1.0.2 (2018-12-15)
- Changelog: changelog file location (ef1bcee)
- License: move third party notices into project root (2094c45)
1.0.1 (2018-12-15)
- UnityIntegration: allow usage as a package outside the project (c737c17)
- Weaver: find Fody addin assemblies (082f2c2)
- Weaver: only generate properties for tagged fields (1542969)