Skip to content

Interaction refactoring and replication

David Gilbert requested to merge refactor/interaction_replication into dev/5.4

Initial refactoring of the interaction system to better lay the groundwork for interaction replication. Very rough untested draft as of now, changes include:

  • Action/Hover now inherit from a BaseBehaviour which can save shared information, and adds some basic replication properties.
  • Adds a BaseInteractionComponent which similarly to the BaseBehaviour contains replication and some general properties shared by both direct and ray interactors.
  • Start/End functions have been condensed into one, and an Enum now separates the two. This reduces code duplication especially for replication by a lot.
  • Adjusts other components such as intenselect to the new refactoring
  • Callback for Behaviours that only executes on the originating client
  • GrabBehaviour adjusted to replicate correctly

Missing changes:

  • Test the whole thing:
    • Standalone seems to work fine
    • Dedicated server grab
    • Direct Interaction for
      • VR Grab
      • Grab seems to work fine for desktop Listen server + 2 clients
      • Cave Grav
      • Desktop + VR + Cave + Dedicated server Grab
    • Raycast Interaction for
      • Desktop Grab
      • Cave Grab
      • VR Grab
      • Desktop + VR + Cave + Dedicated server Grab
  • Documentation and comments, especially the replication part
  • Adjust blueprints and any other uassets
  • Actually consider the replication process and add some more callbacks and events that can be used
  • Naming scheme is wild
  • Does it even make sense like this? This is just one possible approach
Edited by David Gilbert

Merge request reports

Loading