Skip to content

Releases: ExtendRealityLtd/Zinnia.Unity

v2.9.0

28 Mar 09:58
Compare
Choose a tag to compare

2.9.0 (2023-03-28)

Features

  • Extension: provide alternative method for isActiveAndEnabled (2abbbf4)

    It would seem that the behaviour.isActiveAndEnabled property does not always return what is expected. If a GameObject is active and the behaviour is enabled then isActiveAndEnabled can still return false whilst in the OnEnable state.

    It would seem that isActiveAndEnabled does not return true until all of the relevant initial Unity moments have passed for an Object.

    To counter this, a new BehaviourExtension has been added called CheckIsActiveAndEnabled() that will do an absolute check on the GameObject active state and the behaviour enabled state.

    If the old isActiveAndEnabled check is still required then it can be switched to by a scripting define symbol of:

    ZINNIA_USE_ISACTIVEANDENABLED

    All of the relevant files that use isActiveAndEnabled have now been updated to use the new CheckIsActiveAndEnabled() extension method.

  • Tracking: use current property value to set passthrough mode (d20e1ca)

    The new SetPassThrough method will simply call the relevant passthrough method based on the current PassThroughCameraEnabled value.

    This is useful if the passthrough camera has turned off due to application pause and needs returning back on when the app is unpaused.

v2.8.0

21 Mar 10:40
Compare
Choose a tag to compare

2.8.0 (2023-03-21)

Features

  • Visual: add ability to mutate cameras background settings (3fe8ab8)

    The CameraBackgroundMutator allows the ability to mutate a list of cameras clearFlags and backgroundColor state and then to restore the previous data prior to the mutation.

Bug Fixes

  • Velocity: use correct local rotation calculation (fa0a70e)

    ConstantVelocityTracker is intended to be like the physics Constant Force component. If UseLocal=false, it should return velocity in absolute world space frame. If UseLocal=true, it should return velocity in attached object reference frame.

    Co-authored-by: FIGHT4DREAM [email protected]

v2.7.2

16 Mar 11:33
Compare
Choose a tag to compare

2.7.2 (2023-03-16)

Bug Fixes

  • Tracking: stop artificial velocity applier running when disabled (a0d55e2)

    The ArtificialVelocityApplier was still applying velocity via the Apply method even if the component was disabled.

    This is because originally it used the [RequiresBehaviourState] Malimbe tag but when it was separated out from the process parent, this was not updated when malimbe was removed.

    This has been fixed now by ensuring the valid state of the object is present before running the Apply method.

v2.7.1

13 Mar 14:12
Compare
Choose a tag to compare

2.7.1 (2023-03-13)

Bug Fixes

  • Tracking: ensure velocity is not set on kinematic rigidbody (c588d73)

    Rigidbodies cannot have velocities set on them if they are kinematic as they are not actually part of the physics simulation when kinematic so this fix just ensures the kinematic state is checked before trying to apply a velocity to a rigidbody.

v2.7.0

11 Mar 12:26
Compare
Choose a tag to compare

2.7.0 (2023-03-11)

Features

  • Process: allow moment processor to be processable (3344928)

    The MomentProcessor component now also implements the IProcessable interface so it can also be processed with a MomentProcess.

    This means that multiple MomentProcessors can have their MomentProcess set to None meaning they will not be processed in a Unity game moment, but instead can then be added to another MomentProcessor and run in whatever moment that parent processor is using.

    This allows for greater control over what processes are run amongst different MomentProcessors.

  • Tracking: add passthrough camera to device details record (34fb35f)

    The DeviceDetailsRecord now holds status of whether the device has a passthrough camera and the ability to set the enabled state of the passthrough camera (if supported by the underlying SDK).

  • Tracking: add pivot rotation mirror to direction modifier (039dbf7)

    The DirectionModifier component now has a new property of PivotRotationMirror which takes a GameObject that will mirror the rotation of the given Pivot GameObject.

    This is useful if for instance the follow logic is running on a precision point basis and that precision point object needs to replicate the rotation given by the Pivot.

v2.6.0

22 Feb 13:55
Compare
Choose a tag to compare

2.6.0 (2023-02-22)

Features

  • Utility: add animation helper components (2ad690f)

    The AnimatorScrubber component allows an animation timeline to be scrubbed through by providing the exact normalized timestamp to jump the animation to.

    The AnimatorParameterMutator allows the mutation of parameters assigned to an Animation Controller.

v2.5.0

19 Feb 14:33
Compare
Choose a tag to compare

2.5.0 (2023-02-19)

Features

  • Editor: provide more options for inspector draw property (1b9db3d)

    The DrawProperty method in the ZinniaInspector has been updated to allow more options such as a custom label and whether to include children.

    This has been added as a number of additional methods rather than a single method with overrides to keep compatability.

  • Tracking: change smoothed restrictable property order (aab1b7a)

    THe Equality Tolereance has been moved to be the first parameter so the Transition Duration can be used in custom editors with a custom label but not pulling in the [Header] tag as that is hard associated with the field in Unity and no easy way to remove it so this is a workaround.

Bug Fixes

  • Editor: add missing list components to generator window (5ceb357)

    The List component Generator Window was missing a number of elements that made sense to be in the list. These have now been added.

v2.4.0

08 Feb 16:21
Compare
Choose a tag to compare

2.4.0 (2023-02-08)

Features

  • Data: allow optional name for cloned gameobejct (8211ff7)

    There is a new property on the GameObjectCloner that allows defining the name of the cloned object as by default it just gets named as <current_object_name>(Clone) which may not be desirable so this allows a simple way of just setting the name at edit time without need for any code.

  • Event: allow frame yield emitters to run multiple frames (d443977)

    Previously, the WaitForEndOfFrame and WaitForFixedUpdate YieldEmitters would only yield after one instruction by yielding immediately after the current frame/fixed update.

    This feature allows a number of frames to wait before actually calling yield, meaning it is possible to wait n frames or n fixed update loops before yielding.

  • Tracking: add smoothable transform property modifier (a1f5204)

    The ability to provide smoothing data to the TransformPosition/Rotation/Scale property modifiers has now been added by providing a new abstract class that extends the restrictable modifier and provides smoothing settings using SmoothDamp.

    A custom Quaternion SmoothDamp algorithm has been added into the Extension namespace to handle smoothing on rotations.

  • Utility: add pause/resume methods for countdown timer. (ec1cdff)

    The CountdownTimer component now has a Pause and a Resume method allowing the timer to be paused and then resumed. There are additional events to notify when the timer is paused and resumed.

Bug Fixes

  • CameraOverlay: change scaled time to unscaled time (75c14f5)

    The deltaTime and WaitForSeconds gets effected by the time scale which can cause the overlay to never fade in or out when timescale is set to approximately 0. Switching to unscaledDeltaTime and WaitForSecondsRealtime will always fade in and out no matter the time scale.

  • Tests: ensure all quaternion and vectors use comparators (cbafc35)

    All of the tests that compare vectors or quaternions have now been updated so they no longer use ToString to compare in the Assert.AreEqual as this is not robust enough to always work. Instead they all now use equality comparators.

    All of the gameobjects created by the tests now also are named so it is easier to see which test is running and where any cleanup issues may be occurring.

    The UnityEngine.Assertions.Assert has also been removed from the tests as it is not required.

    Any test that destroys the subject object on teardown has also been updated to not do this as the subject gets destroyed automatically when the containingObject GameObject gets destroyed.

v2.3.0

16 Jun 14:24
Compare
Choose a tag to compare

2.3.0 (2022-06-16)

Features

  • Action: add events to action registrar (321749d)

    The ActionRegistrar now has some events that emit when an Action is added/removed to/from the Target Action sources and an event that denotes the SourceLimit that was used when the Action was added/removed.

  • Action: add sources contains method (3dab887)

    The Action now has a SourcesContains method that allows a generic action to be checked if its sources contain a given action.

    This is on the base class so can be used regardless of any action typing.

    The RemoveSource method also now returns a bool based on the results of the internal List.Remove call. This is also now used in the ActionRegistrar to determine if the remove/unregister events should be raised as if no source is removed then no event should be raised.

Bug Fixes

  • Haptics: add range back to intensity (3263007)

    The Range attribute was missing from the Intensity as it wasn't copied over when the Malimbe removal was done. It has now been readded back.

  • Visual: increase URP mesh size (b99cfed)

    The size the mesh that is generated for the URP fade was too small causing the edges of the mesh to show the scene behind it.

    This has been fixed by making the mesh size much larger.

    The code has also been refactored to make it cleaner.

v2.2.0

20 May 06:48
Compare
Choose a tag to compare

2.2.0 (2022-05-20)

Features

  • Cast: add event data raycast hit extractor (fd44cce)

    The PointsCast.EventData contains RaycastHit information that may be useful to be extracted and then worked upon elsewhere, so this new extractor simply extracts the RaycastHit from the PointsCast EventData.

  • Data: add GameObject destroyer (d20fce6)

    The GameObjectDestroyer component allows a specified GameObject to be destroyed either immediately or at the end of the frame.

  • Extension: add unsigned euler to signed for Vector2 (9faa375)

    The UnsignedEulerToSignedEuler method was only on the Vector3 extension but it really should be on Vector2 extension as well for completeness as these two extension classes have the same matching methods.

  • Rule: add rule based on action activated state (52217a4)

    The ActionRule will return true if the set (or given) action is currently activated and will return false if the action is in the deactivated state.

  • Utility: add ability for countdown timer to start on enabled (bab96b0)

    Previously, the CountdownTimer component would rely on the BehaviourEnabledObserver component to let it start the timer when the component became enabled. But the use case for wanting a timer to start when the component is enabled is so common that it may as well simply be an option on the CountdownTimer component itself.

    This makes it easier to simply start a timer, but it can also be disabled so the use of the BehaviourEnabledObserver can still be used if required. It is also set to false by default so will not cause any breaking changes.

Bug Fixes

  • DirectionModifier: allow RotationUpTarget to be set by method (fd20d38)

    The RotationUpTarget property can now be set via a method passing the enum index in as the parameter.

  • Visual: add UnityFlag attribute to meshesToModify field (3676613)

    The meshesToModify field needs to have the UnityFlag attribute on it otherwise it won't show up the multiple choice enum drop down.