Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: Corrected behaviour of TrackedPoseDriver when no device is connected. #1823

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

ekcoh
Copy link
Collaborator

@ekcoh ekcoh commented Jan 29, 2024

Description

This fix is intended to fix reported behaviour in ISXB-699
.

Changes made

Modified behaviour when action reference is not set or when binding count is zero to not track position nor rotation.

Added a test case that is mimicking the reported behavior.

Notes

Requesting insights from XR team regarding any implications this might have since behavior wasn't previously covered properly in existing test cases. It also changes the behaviour commented inline in the implementation.

Checklist

Before review:

  • Changelog entry added.
    • Explains the change in Changed, Fixed, Added sections.
    • For API change contains an example snippet and/or migration example.
    • FogBugz ticket attached, example ([case %number%](https://issuetracker.unity3d.com/issues/...)).
    • FogBugz is marked as "Resolved" with next release version correctly set.
  • Tests added/changed, if applicable.
    • Functional tests Area_CanDoX, Area_CanDoX_EvenIfYIsTheCase, Area_WhenIDoX_AndYHappens_ThisIsTheResult.
    • Performance tests.
    • Integration tests.
  • Docs for new/changed API's.
    • Xmldoc cross references are set correctly.
    • Added explanation how the API works.
    • Usage code examples added.
    • The manual is updated, if needed.

During merge:

  • Commit message for squash-merge is prefixed with one of the list:
    • NEW: ___.
    • FIX: ___.
    • DOCS: ___.
    • CHANGE: ___.
    • RELEASE: 1.1.0-preview.3.

…cted with an additional test case mimicking the reported scenario.
@ekcoh ekcoh added the work in progress Indicates that the PR is work in progress and any review efforts can be post-poned. label Jan 29, 2024
@smnwttbr smnwttbr marked this pull request as ready for review November 11, 2024 03:21
@Pauliusd01
Copy link
Collaborator

@smnwttbr I don't have any XR devices so I'll add an XR QA instead. @UnityRyanC

@Pauliusd01 Pauliusd01 requested review from UnityRyanC and removed request for Pauliusd01 November 11, 2024 08:29
@UnityRyanC
Copy link

I won't be able to test this PR as I don't have a Mac (which the bug mentions was where the issue was reproduced on). I spoke with Manuel Gonzalez Solano, who does testing on PolySpatial and Apple Vision OS, who'll be able to test this once he's free later this week.

I don't have permission to update reviewers on this PR, so @Pauliusd01 could you update the PR for me please?

@Pauliusd01
Copy link
Collaborator

I won't be able to test this PR as I don't have a Mac (which the bug mentions was where the issue was reproduced on). I spoke with Manuel Gonzalez Solano, who does testing on PolySpatial and Apple Vision OS, who'll be able to test this once he's free later this week.

I don't have permission to update reviewers on this PR, so @Pauliusd01 could you update the PR for me please?

Okay, I dmed him on slack since I can't find him on github by name.

@Pauliusd01 Pauliusd01 removed the request for review from UnityRyanC November 13, 2024 07:25
@mangosol
Copy link

@Pauliusd01 can you add me as reviewer? I don't seem to have permission to add myself

@Pauliusd01 Pauliusd01 requested a review from mangosol November 14, 2024 07:11
Copy link

@mangosol mangosol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested the isxb-699-trackedposedriver-fix branch against a new Universal 3D project created and run using Unity Editor 6000.0.26f1 apple silicon and 2022.3.51f1 apple silicon, on an M1 macOS machine.

I did observe that the non-origin position and rotation was preserved on GameObjects having Tracked Pose Driver components if I left the Ignore Tracking State checkbox enabled.

If I check the Ignore Tracking State checkbox, GameObjects having Tracked Pose Driver component and set at non-origin position and rotation are once again returned to origin position and rotation when PlayMode starts

I also observed that setting Update Type = Before Render with Ignore Tracking State checked, non-origin rotations and positions are preserved when starting PlayMode

@@ -245,6 +246,7 @@ however, it has to be formatted properly to pass verification tests.
- Fixed incorrect documentation in InputSystem.actions and InputSystem.onActionsChanged property API contract.
- Fixed an issue where `InputSystem.actions` could be incorrectly evaluated if the associated asset was deleted.


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: extra new line

@mangosol
Copy link

mangosol commented Dec 4, 2024

I've also bound input actions to change position and rotation on GameObjects having TrackedPosedDriver component, and I observe the following:

  • When TrackedPoseDriver is configured with Ignore Tracking State unchecked, I am able to modify position and rotation, and the updated values persist.
  • When TrackedPoseDriver is configured with Ignore Tracking State checked, and Updated Type is set Update and Before Render || Update, and Tracking Type is set to Rotation and Position, then any changes made to position and rotation are reset immediately after applied (likely on next frame).
  • When TrackedPoseDriver is configured with Ignore Tracking State checked, and Updated Type is set Update and Before Render || Update, and Tracking Type is set to Rotation only, then any changes made to rotation are reset immediately after applied (likely on next frame). Position changes are applied successfully and persist.
  • When TrackedPoseDriver is configured with Ignore Tracking State checked, and Updated Type is set Update and Before Render || Update, and Tracking Type is set to Position only, then any changes made to position are reset immediately after applied (likely on next frame). Rotation changes are applied successfully and persist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
work in progress Indicates that the PR is work in progress and any review efforts can be post-poned.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants