Getting Started
Package Types
Scene Setup
Custom Collision, Layers, and Tags
Key Differences from Standard Unity3D development
Economy
Scripting
Components
Environment Settings Overrides
Render Pipeline Settings Overrides
Guidelines
Supported Features and Limitations
Movement materials let you define unique physics and audio-visual properties for how colliders interact with avatars in your space.
Movement Material and Sounds.mp4
Create a new movement material by right clicking in the project view and selecting Create > Spatial > MovementMaterial
. You can also find it in the Assets > Create
menu at the top of the editor.
The default movement material that’s applied to every object can be assigned in the Environment Override Settings component.
If you would like to override the default movement material for a specific object, then assign a movement material to the specific collider using the Movement Material Surface
component.
Property: | Function |
---|---|
Footstep Walk | When the avatars foot touches the ground while walking |
Footstep Run | When the avatars foot touches the ground while running |
Jump | When the avatar jumps while grounded |
Land | When the avatar lands with enough vertical velocity |
Stop | When the avatar decelerates very quickly in a single frame. |
Takeoff | When the avatar accelerates very quickly in a single frame. |
<aside> <img src="/icons/stars_red.svg" alt="/icons/stars_red.svg" width="40px" /> For every movement event with VFX, the prefab will be repositioned and a ParticleSystem.Emit(1) call is made on the particle system.
</aside>
This means your particles will not be “played” like normal. A single particle will be emitted from the parent system. This lets us use a single particle GameObject per event/material across all avatars keeping the system extremely lightweight.
Because the particle prefab is re-positioned every time we emit, your systems need to simulate in World Space
Because we Emit(1)
instead of Play()
, child particle systems will not play by default. You can trigger them by assigning them as SubEmitters
on Birth
.