-
Notifications
You must be signed in to change notification settings - Fork 3
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
feat: nested snap zone is not grabbable by default #57
feat: nested snap zone is not grabbable by default #57
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works for me 👍
@@ -218,6 +223,12 @@ private void OnDrawGizmos() | |||
|
|||
protected virtual void Update() | |||
{ | |||
if (initialParent != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any particular reason to have it here and not in Start() or Update()?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
The interactables register all their child colliders as part of it in the interaction manager at their Awake.
The idea is to deattach the snap zone from the interactable object and reattach it at the next first frame.
Unfortunately, the Awake and OnEnable from all interactors are called before than the Awake and OnEnable from all interactables so Awake and OnEnable are not an optional.
Additionally, Sockets already have a private Start, so calling a start will override their own and since it is private, there is no way to call as base.
The workaround I found is to call only once in the first frame in the Update, I don't entirely like it but, we can change it if the XR interaction framework becomes less private in the future.
…-by-default-TRNG-1034
…-by-default-TRNG-1034
🎉 This PR is included in version 1.4.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Description
If a Snap Zone started a scene nested in an interactable object, the colliders of the snap zone were grabbable as an extension of the interactable object. This PR fixes this behavior.
Note: It is still possible to manually set the snap zones colliders as part of the interactable object.
Type of change
How Has This Been Tested?
Place a snap zone inside an interactable object, then run the scene an try to grab the interactable object by the snap zone, it should not be possible anymore.