Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
filmgrvin's avatar
filmgrvin
Explorer
1 year ago
Solved

Artificially triggering a snap interaction via code

I'm trying to instantiate both a SnapInteractable and SnapInteractor from code. After both objects are instantiated, I want to then attach the interactor to the interactable.

Here's a demo video to demonstrate what I'm going for: https://www.dropbox.com/scl/fi/zcpshr4bjw2okacy0ae29/2024-03-13-at-12.49.17.mp4?rlkey=so0s0r316vykvir8u0eq743ja&dl=0

The only way I can get the interaction to occur is by using my hand to grab the interactor, and place it near the interactable.

I've tried setting the position via code (hoping proximity would trigger a snap interaction), but no luck.

I've also tried using the following code but no luck there either.

interactable.AddSelectingInteractor(interactor);
interactor.Select();
 
 
Any ideas?
  • Hi filmgrvin, the SnapInteractor has some methods you can use to force select the interactor, like this:

    SnapInteractor.SetComputeCandidateOverride(() => SnapInteractable); SnapInteractor.SetComputeShouldSelectOverride(() => true);
     
    This will force-set the candidate of the interactor to the correct interactable, and then force it to select (snap).

     

7 Replies

Replies have been turned off for this discussion
  • Just wanted to add, if the _defaultInteractable field on SnapInteractor was public, this would be a non-issue...

  • Big_Flex's avatar
    Big_Flex
    Meta Employee

    Hi filmgrvin, the SnapInteractor has some methods you can use to force select the interactor, like this:

    SnapInteractor.SetComputeCandidateOverride(() => SnapInteractable); SnapInteractor.SetComputeShouldSelectOverride(() => true);
     
    This will force-set the candidate of the interactor to the correct interactable, and then force it to select (snap).

     

    • filmgrvin's avatar
      filmgrvin
      Explorer

      Oh my goodness thank you so much! That worked, you're a life saver

      • Big_Flex's avatar
        Big_Flex
        Meta Employee

        I'm glad I could help 🙂 If you have any questions about Interaction SDK in the future, please tag me; I write the docs for the team and also engage with users here on the forum! Did you try using any of the official documentation to answer your question? If you did, I'm always looking for gaps in it and ways to make it more usable, so I'd love your feedback.

  • Big_Flex's avatar
    Big_Flex
    Meta Employee

    Hi, I've switched teams and no longer work on Interaction SDK, but you can direct any questions to @ffejnosliw. Thanks 🙂