🧰
Developer
  • ENGAGE SDK overview
  • Setting up the ENGAGE SDK
    • Registering as an ENGAGE developer
    • Setting up your local git repository
    • Installing the Unity Editor
    • Opening the ENGAGE SDK Unity project
    • Checking for SDK updates
    • Installing a platform build module
  • ENGAGE SDK project folders
  • General guidelines for 3D models
    • Optimizing 3D models
  • Locations
    • Guidelines for locations
    • Creating a new location
    • Building a location bundle
    • Testing a location locally on Windows
    • Configuring an object as a teleport target
    • Configuring the start position
    • Seats
      • Creating a seat
      • Using the summon to seat system
    • Network states
      • Network State Manager
      • Location Network States
      • Example network state configurations
        • Network state toggle object
        • Network state animation start/stop
        • Network state change animation
          • Creating an animation in Unity
          • Using Animator.Play(string)
          • Defining Animator transitions
          • Using Animator.SetTrigger(string)
        • Network state sync animation
        • Network state position toggle
        • Network state automatic door
        • Network state toggle skybox
        • Network state change materials
    • Adding grabable objects to a location
      • Resetting network objects with a button
      • Resetting network objects when out of bounds
    • Locations reference information
      • Basic requirements for a location
  • Immersive Effects (IFX)
    • Guidelines for IFX
    • Creating an IFX
    • Building an IFX bundle
    • Testing IFX locally on Windows
    • Specialized IFX
      • Animated IFX
        • Animation overrides
          • Legacy animations
          • Animator animations
          • Configuring additional Effect Life Run Control properties
      • Audio IFX
      • Interactive IFX
  • List of available prefabs
  • Available scripts
    • External Video Player
  • Profiling
  • Publishing to ENGAGE
    • Publishing checklists
    • Pushing files to your GitHub repository
  • AFX
    • Getting started
      • Changelog
    • AFX Graphs
      • Creating an AFX graph
      • Editing an AFX graph
      • Navigation and keyboard shortcuts
      • Adding an AFX graph to a game object
      • Nodes
      • Ports
      • Connections
      • Flows
        • Starting a flow
        • Using multiple flows
        • Chaining flows
        • Controlling flows
      • References
      • Using AFX Events
    • Networking AFX
      • Network State Modules
      • Ownership of networked objects
    • Animation curves
    • Node dictionary
      • ENGAGE
        • AFX Companion
          • Constant Collision
          • Grab Object
          • PathData
        • Networking
          • Network State Modules
        • Physics
        • Player
        • Seat
      • Events
        • Collision
        • Unity
        • AFX Events
      • Flow
      • Reference
      • Unity
        • Component
          • Animation
            • Set Parameters
          • Audio
            • Audio Reverb Zone
            • Audio Source
          • Collider
          • FX
          • Rendering
            • Camera
            • Light
            • Material
          • UI
        • Constraint
        • GameObject
        • Input
        • Physics
          • Raycast
            • Layer Mask
          • RigidBody
            • Joint
              • Hinge
              • Spring
          • Wheel Collider
        • Time
        • Transform
          • Get
          • Set
          • Space Switching
      • Variable
        • Bool
        • Comparison
        • Float
        • Int
        • List
        • Math
          • MathF
        • String
        • Unity Component
        • Vector
          • Quaternion
          • Vector2
          • Vector 3
            • Vector3 Math
    • Sample graphs
Powered by GitBook
On this page
  1. Locations

Adding grabable objects to a location

PreviousNetwork state change materialsNextResetting network objects with a button

Last updated 7 months ago

You can add objects to your scene that users on VR devices can pick up and interact with. For example, you could add coffee cup props to a café scene, or throwable balls for a carnival game. We refer to these as network objects, because the object's position and rotation is synchronized across the network. This ensures that when one user in a Session grabs the object, all other users see it's updated position and rotation.

For each individual network object, use the hierarchy shown in the following diagram.

  • In the parent game object (NetworkObject_1 in this example), add an Engage_Create Network Object From Scene Object script component. You must use a scale of (1, 1, 1) for the parent game object.

  • Add the 3D model that you want to use for the network object as a child (NetworkObject_1_geometry in this example).

Ensure that the child object has a Collider component.

You may want to include a method to reset the location of your network objects. For more information see Resetting network objects with a button and Resetting network objects when out of bounds.

Network object from scene object: parameters

The parameters that you can set in the Engage_Create Network Object From Scene Object script are described in the following table.

Parameter
Description

Very Unique Object Name

Required Enter a name that is unique in the scene.

Gravity Enabled

If selected, the network object responds to gravity and falls to the first collidable surface when not held.

Always Kinematic

Optional String for Games

String that can be applied and used for interactive games

Dont Change Tag

When the network object is created, a Bones tag is applied to help the application manage the object. If this option is selected, that tag is not applied.

Allow Self Collision

If selected, the object will collide with other network objects.

Allow Recording

If selected, when a user creates a recording in the ENGAGE application, the motion of the network object will be included in that recording.

Dont Change Layer

Caution. Advanced usage only. When the network object is created, it is assigned to a layer that helps the application manage the object. If this option is selected, the object is not moved to that layer.

Single User No Sync

Caution. Advanced usage only. If selected, the object's position is not synchronized between users in a Session. Each user will see their own, independent object.

On Owner Changed is Owner

Caution. Advanced usage only. You can define methods to call when the object's owner changes. Network objects are owned by the user that grabs them. A Boolean parameter is passed to the methods, which is true if the local user is the owner.

If selected, the network object is not affected by physics. When not held, the object will remain floating at the position where it was left. For more information, refer to in the Unity documentation.

Introduction to rigid body physics
Example grabbable objects for a carnival game
Example hierarchy for a network object