Interactivity Tools Guide

Add one-click interactivity to any object with Unity 6 and multiplayer support

What is the Interactivity System?

Transform static 3D objects into engaging interactive experiences! U3D Interactivity Tools let you add professional-grade interactive behaviors to any object with a single click, supporting both single-player and real-time multiplayer scenarios.

Automatic Multiplayer Support

One Click

Every interaction tool includes NetworkObject support!
Leave Network Object enabled when applying tools - once scene is saved, behaviors work across all connected players
Powered by Photon Fusion 2 with optimized WebGL performance

Getting Started

1
Select Your Object
  • Click on any GameObject in your scene
  • Can be primitives, imported models, or complex hierarchies
  • Object will auto-get required components (colliders, rigidbodies)
2
Choose Your Tool
  • Go to Creator Dashboard → Project Tools → Interactions tab
  • Pick the behavior that fits your experience
  • Works with any Unity-compatible 3D content
3
Apply & Configure
  • Click Apply to add the behavior
  • Customize component settings in the Inspector
  • Connect UnityEvents for custom responses
4
Test & Deploy
  • Test in Play mode immediately
  • All tools work as single player in local testing
  • Deploy to get full multiplayer experience

Interactive Behaviors You Can Add

Live
📦

Add Object Spawner

"Spawn prefab instances at this location on interact or trigger"

Places a spawn point that instantiates a configured prefab when a player interacts or a trigger fires. Supports both local and networked spawning. Networked spawns are host-authoritative via RPC so all clients see the result.

Perfect for:
  • Item dispensers and pickup spawns
  • Respawning collectibles and resources
  • Quest item delivery points
  • Particle or prop poppers on trigger
Live
🤏

Make Grabbable

"Pick up from distance, attach to hand position"

Objects can be picked up from adjustable distances using precise raycast or radius detection. Automatically handles hand attachment and collision management.

Perfect for:
  • Interactive props and tools
  • Collectible items and treasures
  • Building blocks and creative materials
  • Key objects for puzzle mechanics
Live
🎯

Make Throwable

"Physics-based throwing with auto-sleep"

Must be applied to grabbable objects. Handles camera-direction throwing, physics activation, automatic sleep states, and world bounds recovery.

Great for:
  • Sports equipment and game pieces
  • Interactive projectiles and toys
  • Puzzle elements requiring placement
  • Creative building and experimentation
Live
🦶

Make Kickable

"Ground-level physics with camera-directed kicks"

Objects at ground level can be kicked with configurable force and upward boost. Uses camera direction for aim, with automatic physics sleep and world bounds recovery. Can be combined with Grabbable on the same object with automatic key remapping.

Perfect for:
  • Balls, cans, and ground-level props
  • Sports and playground games
  • Physics puzzles and chain reactions
  • Environmental storytelling with loose objects
Live
📦

Make Pushable

"Walk into objects to push them along surfaces"

Toggle push mode to move objects by walking into them. Push direction follows the camera, and push speed matches the player's movement. Objects slide along floors and fall off edges naturally. Adjustable push resistance controls how heavy the object feels.

Perfect for:
  • Crates, barrels, and block puzzles
  • Furniture rearrangement and set dressing
  • Weighted switches and pressure plates
  • Cooperative obstacle clearing
Live
🧗

Make Climbable

"Walk up to a wall and climb it"

Designate any surface as climbable. Players approaching a climbable wall while moving forward begin climbing automatically. Each surface has its own speed and detection settings, so a rough rock face can feel different from a smooth ladder. Climbing state is fully networked so all players see each other climb.

Perfect for:
  • Vertical traversal and wall climbing
  • Obstacle courses and platforming challenges
  • Exploration with height-based rewards
  • Surfaces with different climb feels (fast ladders, slow cliff faces)
Planned
🏊

Make Swimmable

"Water volumes with swimming physics"

Create water areas where players can swim with modified movement physics and underwater effects.

Live
🚪

Make Enter Trigger

"Execute actions when players enter area"

Detects U3D players or tagged objects entering trigger zones. Includes cooldown timers, one-time triggers, and separate events for players vs objects.

Perfect for:
  • Area activation and lighting systems
  • Sound zones and ambient triggers
  • Quest checkpoints and progression
  • Interactive environment responses
Live
🚶

Make Exit Trigger

"Execute actions when players leave area"

Companion to Enter Triggers with identical detection and configuration options. Perfect for cleanup actions and state resets.

Great for:
  • Light and sound cleanup systems
  • Temporary effect removal
  • Security and access control
  • Resource management and optimization
Live
👆

Add Interact Trigger

"Execute actions when players interact with this object"

Fires UnityEvents when a player presses the Interact key (R by default) while near the object, or clicks on it with the mouse. Works with keyboard, mouse, and XR controllers. Supports cooldown timers, one-time activation, tag filtering, and configurable interaction range. Requires a collider.

Great for:
  • Buttons, levers, and switches
  • Interactive story objects and collectibles
  • Signs, information panels, and NPCs
  • Puzzle activators and quest targets
Live
🔲

Add Trigger Zone

"Fire events when the zone goes from empty to occupied, and when it clears"

Tracks how many qualifying objects are inside and fires OnZoneOccupied when occupancy goes from zero to one, and OnZoneCleared when it returns to zero. Use this instead of paired Enter/Exit triggers when you need stateful "while occupied" logic.

Perfect for:
  • Pressure plates that stay active while stood on
  • Puzzles requiring multiple objects in a zone simultaneously
  • Doors and gates that open while a player is present
  • Any logic that depends on whether the zone is currently occupied
Planned
🎲

Make Random

"Randomize between multiple GameObjects"

Component with configurable list that randomizes activation between audio, particles, or other GameObjects on trigger.

Planned
🔘

Make Mutually Exclusive

"Only one can be selected at a time"

Groups objects so that activating one deactivates others. Perfect for selection menus, radio-button-style choices, and exclusive state systems.

Planned
💥

Make Object Destroy Trigger

"Remove objects when triggered"

Destroys or deactivates target objects on trigger activation. Useful for collectibles, breakable objects, and consumable items.

Planned
↩️

Make Object Reset Trigger

"Return objects to starting position"

Resets target objects to their original position and rotation. Great for puzzle resets, cleanup zones, and retry mechanics.

Planned
🏠

Add Player Reset Trigger

"Reset player position and state to spawn point"

Returns the player to their spawn point and resets state. Essential for out-of-bounds recovery, death zones, and level restart areas.


Movement

Planned
🪑

Add Seat

"Sit animation with movement exit"

Adds a snap point that triggers an avatar sit animation. Players exit by resuming movement input. Multiple seats supported on a single object. Works on static chairs and benches as well as moving rideables — a ferris wheel car can have seats, and so can a park bench.

Live
🎠

Make Rideable

"Stand on top and move with the object"

Players standing on the surface are carried with it automatically — no extra setup required. Choose from three movement modes in the Inspector: Waypoints moves the object between placed Transform markers you position in the scene; Rotation spins it continuously around a local axis; Static keeps it in place so Steerable can drive it instead. Loop and PingPong options for waypoint paths. Fully multiplayer — movement is authoritative and synced to all clients.

Perfect for:
  • Elevators and moving platforms
  • Ferris wheels, carousels, and turntables
  • Trains, boats, and patrol vehicles
  • Any surface that moves and carries passengers
Planned
🎮

Make Steerable

"Player input steers the object"

Extends Make Rideable so the player's movement input controls the object directly. W/S accelerates and decelerates, A/D yaws. The player avatar faces the direction of travel. A ground-check toggle supports wheeled vehicles that must stay on terrain as well as free-moving objects like hot air balloons and submarines. Wheel spin and other visual animations can be added separately via Animator.

Perfect for:
  • Cars, go-karts, and wheeled vehicles
  • Boats, magic carpets, and hovercraft
  • Hot air balloons and free-flying vehicles
  • Any object the player drives rather than rides passively
Planned
🌀

Add Scene Portal

"Portal to load a different scene"

Transition players to a different Unity scene from this location.

Planned
➡️

Add 1-Way Portal

"Portal for one-direction travel within scene"

Teleports players from this portal to a destination point within the same scene.

Planned
🔁

Add 2-Way Portal

"Portal for bi-directional travel within scene"

Linked portals that teleport players in either direction between two points.

Object Spawner

Prefab Instantiation

The Object Spawner places a prefab instance at the spawner's scene position when triggered. Assign your prefab in the Inspector and connect an Enter Trigger or interaction event to activate it.

Networked vs Local Spawning

  • Local spawn: Instantiates a standard GameObject visible only to the triggering client. Use for visual effects and non-shared props.
  • Networked spawn: Sends an RPC to the host, which calls runner.Spawn() so the object appears for all connected players. Requires the prefab to have a NetworkObject component.

Grabbable Objects

Distance-Based Interaction

Grabbable objects support both touch-based grabbing and distance-based grabbing using camera direction. The system automatically detects U3D players and handles hand attachment when the interact button is pressed (R key by default).

Setup Options

  • Grab Detection Radius: Use radius-based detection or precise raycast
  • Distance Configuration: Set minimum and maximum grab distances
  • Offset: Adjust where grabbed object appears relative to hand bone
  • Hand Attachment: Specify hand bone name or use player position
  • Multi-Grab: Allow multiple objects to be held simultaneously

Safety Features

Grabbable objects include automatic safety recovery. If an object falls through the world or moves too far from spawn, it automatically returns to its original position.

Throwable Objects

Composing with Grabbable

Throwable is designed to compose with Grabbable, not replace it. Applying "Make Throwable" from the dashboard adds both U3DGrabbable and U3DThrowable to the object — Grabbable handles pickup and hold, Throwable handles release physics. Both components remain active on the same object and work together. You can configure each independently in the Inspector.

Physics-Based Throwing

When released, throwable objects launch in the camera direction with configurable force and automatic physics management.

Smart Physics Management

  • Auto-Sleep: Objects automatically sleep when velocity drops below threshold
  • World Bounds Safety: Automatic recovery if objects go out of bounds
  • Grab-Throw Cycling: Seamless transition between grabbed and thrown states
  • Impact Detection: Events fire when thrown objects hit surfaces
  • Auto Key Remapping: Throw key automatically remaps to avoid conflicts with grabbable and kickable components on the same object

Inspector Fields

  • Drop On Release: When enabled, releasing the grab key drops the object straight down instead of throwing it. Use this for objects that should be placed rather than launched — crates you stack, puzzle pieces you set down, and similar.

Kickable Objects

Ground-Level Physics Interaction

Kickable objects use ground-level proximity detection so players can kick objects at their feet. The kick direction follows the camera forward vector with a configurable upward boost, creating natural arcing trajectories.

Setup Options

  • Kick Force: Base force multiplier applied on kick
  • Upward Boost: Additional upward force for arcing trajectories
  • Max Kick Velocity: Velocity cap to prevent objects flying out of bounds
  • Detection Radius: Ground-level radius for foot collision detection
  • Max Kick Distance: Maximum distance the player can be from the object to kick it

Smart Physics Management

  • Auto-Sleep: Objects automatically return to sleep state when velocity drops below threshold or after a configurable timeout
  • World Bounds Safety: Automatic position recovery if objects fall through the floor or travel too far from origin
  • Grabbable Compatibility: Can coexist with U3DGrabbable on the same object. Interaction keys are automatically remapped to prevent conflicts
  • Impact Detection: Events fire when kicked objects collide with surfaces

Events

  • OnKicked: Fires when object is successfully kicked
  • OnImpact: Fires when kicked object hits something
  • OnSleep: Fires when object returns to sleep after kick
  • OnEnterKickRange / OnExitKickRange: Fires when player enters or leaves kick proximity
  • OnKickFailed: Fires when a kick attempt fails
  • OnWorldBoundsReset: Fires when object is reset due to world bounds violation

Pushable Objects

Sustained Push Interaction

Pushable objects use a toggle interaction model. Press the interaction key to enter push mode, then walk to push the object in your camera's forward direction. Press the interaction key again or walk out of range to stop pushing. The object moves at the speed you walk; standing still in push mode applies no force.

Setup Options

  • Push Resistance: Controls how heavy the object feels. Higher values make it harder to push. This directly adjusts the object's Rigidbody mass.
  • Max Push Distance: How close the player must be to push. Walking beyond this distance automatically ends push mode.
  • Start Active: When enabled, the object spawns with gravity and falls to the ground before becoming pushable. Useful for objects placed above ground level by spawners.

Physics Tuning

Push feel is controlled entirely through standard Unity Rigidbody properties. Increase the object's Rigidbody Mass (via Push Resistance) to make it harder to push. Increase Linear Damping on the Rigidbody to make it stop faster when released. No custom physics systems are involved.

Smart Physics Management

  • Auto-Disengage: Push mode ends automatically if the player walks out of range without toggling off
  • Auto-Sleep: After pushing stops, objects decelerate via damping and return to sleep state when velocity drops below threshold
  • World Bounds Safety: Automatic position recovery if objects fall through the floor or travel too far from origin
  • Grabbable Compatibility: Can coexist with U3DGrabbable on the same object. Interaction keys are automatically remapped to prevent conflicts
  • Edge Behavior: Objects can be pushed off edges and will fall naturally with gravity

Events

  • OnPushStart: Fires when player begins pushing
  • OnPushEnd: Fires when player stops pushing (toggle off or auto-disengage)
  • OnImpact: Fires when pushed object collides with something with force
  • OnSleep: Fires when object returns to sleep after being pushed
  • OnWorldBoundsReset: Fires when object is reset due to world bounds violation

Climbable Surfaces

Per-Surface Climbing

Each climbable surface carries its own climbing configuration. When a player walks toward a climbable wall, climbing begins automatically. Movement remaps to the wall surface: W climbs up, S climbs down, A/D moves laterally, and Space detaches with a small upward boost. Climbing state is networked so all connected players see each other climb.

Setup Options

  • Max Climb Distance: How close the player must be to begin climbing this surface
  • Climb Up Speed / Climb Down Speed: Separate vertical speed controls for ascending and descending
  • Lateral Speed: Movement speed along the surface left and right
  • Speed Multiplier: Overall speed adjustment for this specific surface. A value below 1.0 makes a surface feel like a slow, difficult climb; above 1.0 makes it feel like a fast ladder
  • Surface Stick Distance: How closely the player hugs the wall while climbing
  • Reattach Cooldown: Brief delay after detaching before the player can grab the wall again, preventing accidental re-attach after jumping off

Climbing Movement

  • Surface-Relative Controls: Movement direction is calculated relative to the wall surface for natural traversal on walls of any angle
  • Gravity Suppression: Gravity is automatically suppressed while climbing and resumes on detach
  • Jump Detach: Pressing Space detaches from the wall with an upward boost so the player can jump away cleanly
  • Ground Detach: Moving backward (S) while touching the ground releases the wall, letting the player step away naturally

Events

  • OnClimbStart: Fires when the player attaches to this surface and begins climbing. Wire to an Animator SetBool to trigger a climb animation.
  • OnClimbEnd: Fires when the player detaches from this surface for any reason (jump, walk away, or surface lost)
  • OnJumpOff: Fires when the player specifically jumps off the surface, before OnClimbEnd. Use for jump-off animations or launch sounds that shouldn't play on a normal dismount
  • OnPlayerEnterRange / OnPlayerExitRange: Fires when the player enters or leaves climbing range of this surface, regardless of whether they climb. Use for showing hint UI or toggling label visibility

Example: Climb Animations

Climbing animations work automatically. When a player grabs a climbable surface, the networked animation system detects the climbing state and transitions the avatar to a climbing animation. When the player detaches, the avatar returns to its normal state. This happens for all connected players without any event wiring.

The player prefab ships with a U3DAvatarAnimationController component that manages all eight core animation states (idle, walking, running, jumping, crouching, flying, swimming, and climbing). Each state maps to a slot in the AvatarAnimationSet asset assigned in the Inspector. The default set includes a generic climbing animation that works for most humanoid avatars.

Customizing the Climb Animation

To swap in a different climbing animation:

  1. Select the U3D_PlayerController prefab and find the U3DAvatarAnimationController component in the Inspector.
  2. Click the AvatarAnimationSet asset referenced in the Animation Set field to open it.
  3. Find the Climbing slot and drag in your replacement animation clip. The clip name matching system recognizes names containing "climb", "climbing", "ladder", or "wall".
  4. Your Animator Controller needs a bool parameter named IsClimbing with transitions wired to and from your climbing state. The default U3D Animator Controller already has this.

When to Customize

  • Stylized avatars: A cartoon character might need an exaggerated scramble animation instead of the default realistic climb
  • Non-humanoid avatars: A robot or animal avatar needs a climb animation that matches its rig
  • Themed experiences: A horror game might use a slow, tense climbing motion while an action game uses a fast athletic one
  • Multiple avatar options: If your experience offers avatar selection, each AvatarAnimationSet can have a different climbing clip suited to that character

Using Events for Non-Avatar Responses

The OnClimbStart, OnClimbEnd, and OnJumpOff events on U3DClimbable are designed for environmental responses, not avatar animation (which is handled automatically). Wire these to scene objects that should react when someone climbs:

  • A wall that plays a dust particle effect when grabbed
  • Handholds that glow while a player is climbing
  • A sound effect that plays on attach and stops on detach
  • A door at the top of a climbing wall that opens when OnPlayerEnterRange fires near the ledge

To connect an event: expand the Events section on the U3DClimbable component, click + on the event you want, drag in the target scene object, and pick the function to call. This is the same pattern used by every interaction tool's events throughout the system.

Enter/Exit Triggers

Flexible Player Detection

Trigger systems can detect U3D players specifically, objects with specific tags, or any colliding object. Each offers separate UnityEvents for different detection types.

Advanced Trigger Features

  • Cooldown Timers: Prevent rapid re-triggering with configurable delays
  • One-Time Triggers: Fire only once per session
  • Multiple Event Types: Separate events for players, tagged objects, and general objects
  • Authority Management: Proper multiplayer state synchronization

Interact Trigger

Proximity and Click Interaction

Interact Triggers fire when a player presses the Interact key while near the object, or clicks on it with the mouse. The component plugs into the standard U3D interaction system, so it respects the same interaction range, priority, and prompt display used by Grabbable, Pushable, and other interaction tools. Mouse click uses a camera raycast as a secondary input path for desktop and WebGL users.

Configuration Options

  • Require Tag: Only fire for players with a specific tag, matching the Enter/Exit Trigger pattern
  • Required Tag: The tag to check when Require Tag is enabled (defaults to "Player")
  • Trigger Once: Deactivates after first successful interaction
  • Cooldown Time: Minimum seconds between activations
  • Interact Key: Key shown in the interaction prompt (R by default, remappable)
  • Max Interact Distance: How close the player must be for the Interact key to work
  • Max Click Distance: How far the player can be when using mouse click (0 = unlimited)
  • Allow Mouse Click: Enable or disable the mouse click input path
  • Optional Label: Assign a U3DWorldspaceUI to show a label near this object, matching the Grabbable and Pushable pattern

Events

  • OnInteractTriggered: Fires on each successful interaction
  • OnInteractFailed: Fires when interaction is blocked by cooldown, one-time limit, or tag mismatch
  • OnPlayerEnterRangeEvent: Fires when a player enters interaction range
  • OnPlayerExitRangeEvent: Fires when a player leaves interaction range

Scripting

Call ResetTrigger() on the component at runtime to clear the triggered state and re-arm a one-time trigger. The component also exposes HasTriggered, IsOnCooldown, and IsInRange for scripting logic.

Trigger Zone

Stateful Occupancy Detection

Trigger Zone tracks how many qualifying objects are currently inside it and fires events when that count crosses zero in either direction. Use it when you need to know whether the zone is occupied right now — not just that something entered or left.

Use Enter/Exit Triggers when you want a fire-and-forget event on each entry or exit. Use Trigger Zone when the state of the zone itself matters — a door that should stay open while anyone is standing in it, or a pressure plate that needs all objects removed before it resets.

Inspector Fields

  • Require Tag: Only count objects with this tag toward occupancy. Leave blank to count all colliders.
  • Trigger Once: When enabled, OnZoneOccupied fires only the first time the zone is occupied. OnZoneCleared still fires normally.

Events

  • OnZoneOccupied: Fires when occupancy goes from zero to one — the zone just became occupied.
  • OnZoneCleared: Fires when occupancy returns to zero — the zone is now empty.

Scripting

Call ResetZone() on the component at runtime to clear the occupant count and re-arm a one-time trigger. This is useful for puzzle resets where you need the zone to be re-triggerable after a sequence completes.

Example: Pressure Plate Puzzle

A classic use case — a stone slab that activates a gate while a player stands on it and deactivates the gate when they leave.

  1. Select the pressure plate mesh and apply Add Trigger Zone from the dashboard.
  2. In the Inspector, set Require Tag to Player so only player characters count.
  3. Connect OnZoneOccupied → your gate's Animator.SetBool("Open", true) (or equivalent).
  4. Connect OnZoneCleared → your gate's Animator.SetBool("Open", false).

The gate opens the moment a player steps on and closes as soon as the last player leaves. No scripting required beyond wiring the UnityEvents.

Make Rideable

How It Works

Make Rideable adds a U3DRideableController to your object. When a player steps onto the rideable surface, they are carried with it automatically. Movement is driven inside Fusion's deterministic tick so all clients stay in sync — the platform moves and the player rides it within the same frame, with no jitter or lag compensation needed.

Platform Setup

  1. Select your platform mesh in the scene and apply Make Rideable from the Creator Dashboard Interactions tab, under Movement.
  2. A RideableTrigger child and a Waypoint_0 child are created automatically. The trigger detects when players step on and off. The waypoint marks the starting position.
  3. To create a moving platform, duplicate Waypoint_0, rename it Waypoint_1, and move it to the destination. Assign both to the Waypoints array on the U3DRideableController component in the Inspector.
  4. Set Loop Mode to Loop or PingPong, adjust Speed, and optionally set a Pause At Waypoint duration.

Movement Modes

  • Waypoints — moves between Transform markers you place in the scene. Markers should be children of the rideable so they move with it if you reposition it in the editor. Their world-space positions are cached at runtime so they don't chase the platform as it moves.
  • Rotation — spins the object continuously around a configurable local axis at a fixed speed. No waypoints needed. Use for ferris wheels, turntables, and revolving doors.
  • Static — the object doesn't move on its own. Players can still ride it, and Make Steerable will use this mode to take over movement via player input.

Composing the Full Vehicle System

The three Movement tools are designed to layer on top of each other. Make Rideable is the foundation — it handles passenger carrying and self-movement. Make Steerable will extend it so player input drives the object. Add Seat will add snap points for sit animations on top of either. A car, for example, would use Make Rideable in Static mode, Make Steerable for player-driven movement, and Add Seat for the driver and passenger positions.

Planned Interactive Features

Movement Systems

Swimming volumes will provide modified movement physics with avatar animation and underwater effect triggers for realistic swimming experiences.

Movement Tools

Make Steerable will extend Make Rideable so player movement input drives the object directly — W/S for acceleration, A/D for yaw, with a ground-check toggle for wheeled versus free-moving vehicles. Add Seat will place snap points on any object, static or moving, triggering avatar sit animations that players exit by resuming movement input. Together with Make Rideable, these three tools cover everything from park benches to hot air balloons.

Logic and State Tools

Randomized GameObject activation and mutually exclusive selection groups will enable more sophisticated interactive logic without custom scripting.

Object Management

Object destroy triggers for collectibles and breakable items, object reset triggers for puzzle resets, and player reset triggers for out-of-bounds recovery and death zones will round out the interaction toolkit.

Portals

Scene portals will transition players to a different Unity scene. Within-scene portals come in two flavours: one-way portals that teleport players from a source point to a destination, and two-way linked portals that allow travel in either direction between two points.

Best Practices for Interactive Experiences

Object Selection

  • Start with simple primitives to test behaviors
  • Apply interactive tools to parent objects, not individual meshes
  • Consider object scale - tiny objects are hard to grab
  • Connect clear visual indicators to Events for interactive elements (highlights, material swaps, animations, particles, etc.)

User Experience

  • Provide clear feedback when objects are interacted with
  • Use UnityEvents to connect interactions to visual and audio responses. See the climbable surface section for how animation and events work together — avatar animations are handled automatically, while events drive environmental responses like sounds and particles
  • Test grab distances - too far feels unnatural, too close is frustrating
  • Consider accessibility - not all players can perform complex motions

Interactive Experience Examples

Adventure Escape Room
  • Grabbable keys and puzzle pieces: Essential items for progression
  • Throwable game pieces: Physics-based quest step activation
  • Enter triggers for rooms: Area-based sound, effect, and post process changes
Creative Building Sandbox
  • Grabbable building blocks: Free-form construction materials
  • Throwable physics objects: Test structural stability
  • Object spawners: Dispense fresh building pieces on demand
Interactive Story Space
  • Enter/Exit triggers: Chapter progression and character dialogue
  • Grabbable story artifacts: Interactive props that advance narrative
  • Click triggers on objects: Examine items, read inscriptions, activate story beats
Multiplayer Activity Hub
  • Shared grabbable games: Tabletop game pieces, collaborative tools
  • Kickable game equipment: Footballs, soccer balls, ground-level toys
  • Area-based activities: Join/leave triggers for different game levels

Troubleshooting

Objects Won't Grab

  • Check that object has U3DGrabbable component
  • Adjust grab distance settings - may be too restrictive

Throwable Objects Not Working

  • Verify object has U3DGrabbable component first
  • Check that throwable was applied to a grabbable object
  • Test throw force settings - may be too low to register
  • If Drop On Release is enabled, the object will drop straight down instead of launching — disable it if throwing is the intended behavior

Kickable Objects Not Responding

  • Verify the object has both a Rigidbody and Collider component (added automatically on Apply)
  • Check kick distance - player may be too far from the object
  • If combined with Grabbable, verify keys have been remapped (check console for auto-remap messages)
  • If object is currently grabbed, it cannot be kicked - release it first
  • Test kick force settings - may be too low to produce visible movement

Climbing Not Working

  • Verify the surface has a U3DClimbable component (applied via Creator Dashboard "Make Climbable")
  • Check that the surface has a solid collider (not set to trigger)
  • Ensure the player is facing and moving toward the climbable surface — climbing starts automatically when walking forward into the wall
  • Check Max Climb Distance on the U3DClimbable component — the player may be too far from the surface
  • If the player keeps re-attaching after jumping off, increase the Reattach Cooldown value

Triggers Not Firing

  • Confirm trigger collider is enabled and set to "Is Trigger"
  • Check player detection settings - may need to add tag
  • Verify cooldown timer isn't preventing re-triggering
  • Test with "trigger once" disabled to allow repeated activation

Trigger Zone Not Firing

  • Confirm the collider is set to "Is Trigger" — solid colliders do not generate trigger events
  • If Require Tag is set, confirm the entering object has exactly that tag
  • OnZoneOccupied only fires when count goes from zero to one — if something was already inside when Play started, it may not fire. Test with a clean entry
  • If Trigger Once is enabled and the zone has already fired, call ResetZone() to re-arm it

Multiplayer Sync Issues

  • Ensure NetworkObject component is added to interactive objects
  • Ensure scene has been saved (required to trigger network bake)
  • Test deployed scene in multiple tabs to simulate multiple players

Push Not Working

  • Check that player is within max push distance
  • Ensure the object has U3DPushable, Rigidbody, Collider, and NetworkObject components
  • If push feels too heavy, reduce Push Resistance (lowers Rigidbody mass)
  • If the object slides too far after release, increase Linear Damping on the Rigidbody
  • If the object won't move at all, check that the player is actually walking (standing still in push mode applies no force)
Important: Always test interactive behaviors in Play mode before deploying. Complex interactions may behave differently when built for WebGL deployment.

Understanding Multiplayer Synchronization

How NetworkObject Integration Works

When you enable "NetworkObject for multiplayer" on any interaction tool:

  1. Automatic Setup: NetworkObject component is added to your GameObject
  2. Authority Management: Photon Fusion 2 handles who controls the object
  3. State Sync: Object state (grabbed, kicked, triggered, etc.) syncs across all players
  4. Event Broadcasting: UnityEvents fire for all players simultaneously
  5. Physics Sync: NetworkObject synchronizes physics state across players

When to Enable Multiplayer Sync

  • Shared Objects: Items that multiple players should see and interact with
  • Cooperative Elements: Puzzles and challenges requiring coordination
  • Competitive Interactions: Challenges, games, and contests requiring comparison
  • World State Changes: Triggers that affect the environment for everyone

Single-Player vs Multiplayer Mode

All interaction tools work in both modes:

  • Without NetworkObject: Faster performance, local-only interactions
  • With NetworkObject: Slightly higher overhead, but shared across all players
  • Mixed Approach: Some objects networked, others local-only
  • Runtime Detection: Tools automatically adapt based on NetworkObject presence

Advanced Configuration

UnityEvent Integration

Every interaction tool provides multiple UnityEvents that you can connect to:

  • Visual Responses: Change materials, sounds, effects, or animations
  • Game Mechanics: Update UI, scores, game states
  • Custom Logic: Connect to your own scripts and systems

Physics Integration

Interaction tools work seamlessly with Unity's physics system:

  • Automatic Colliders: Tools add primitive colliders when required
  • Rigidbody Management: Smart activation and deactivation for performance
  • Physics Materials: Support for custom bounce, friction, and sound
  • Joint Compatibility: Works with Unity's joint system for complex mechanics

Automatic Key Remapping

When multiple interaction components share the same object, interaction keys are automatically remapped to prevent conflicts. For example, if both Grabbable and Kickable use the R key, Grabbable remaps to F. If Throwable and Kickable share a key, Throwable remaps to G. Console messages confirm any remapping at startup.

Safety and Recovery Systems

Built-in safety features protect your experience:

  • World Bounds: Objects automatically return if they fall out of world
  • Distance Limits: Recovery when objects travel too far from spawn
  • Auto-Sleep: Physics objects sleep when not in use to save performance
  • Smart Drop: Grabbable objects snap to surfaces when released

Ready to Add Interactivity!

Your interaction system is ready to transform static objects into engaging, multiplayer-synchronized experiences. Select any object and apply interactive behaviors with automatic networking support.

Start creating engaging interactions that work seamlessly across all players!


🎮 Your interactivity system is operational! Apply behaviors to any object and create engaging multiplayer experiences with Unity 6 and Photon Fusion 2.

Ready to Create Something Amazing?

From Unity to Unreality3D.com. Free.


© 2026 Unreality3D LLC. All rights reserved.