Here is a overview of some of the components that we provide. Many of them map to components and functionality in Unity, Blender or other integrations.
For a complete list please have a look at our API docs.
You can always add your own components or add wrappers for Unity components we haven't provided yet.
Learn more in the Scripting section of our docs.
Name | Description |
---|
AudioListener | |
AudioSource | Use to play audio |
Name | Description |
---|
Animator with AnimatorController | Export with animation state machine, conditions, transitions |
Animation | Most basic animation component. Only first clip is exported |
PlayableDirector with TimelineAsset | Export powerful sequences to control animation, audio, state and more |
Name | Description |
---|
Camera | |
Light | DirectionalLight, PointLight, Spotlight. Note that you can use it to bake light (e.g. Rectangular Light shapes) as well |
XRFlag | Control when objects will be visible. E.g. only enable object when in AR |
DeviceFlag | Control on which device objects will be visible |
LODGroup | |
ParticleSystem | Experimental and currently not fully supported |
VideoPlayer | Playback videos from url or referenced video file (will be copied to output on export). The VideoPlayer also supports streaming from MediaStream objects or M3U8 livestream URLs |
MeshRenderer | Used to handle rendering of objects including lightmapping and instancing |
SkinnedMeshRenderer | See MeshRenderer |
SpriteRenderer | Used to render Sprites and Spriteanimations |
Volume with PostProcessing asset | See table below |
Postprocessing effects use the pmndrs postprocessing library under the hood. This means you can also easily add your own custom effects and get an automatically optimized postprocessing pass.
- Unity only: Note that Postprocessing effects using a Volume in Unity is only supported with URP
Effect Name | |
---|
Antialiasing | extra Unity Component |
Bloom | via Volume asset |
Chromatic Aberration | via Volume asset |
Color Adjustments / Color Correction | via Volume asset |
Depth Of Field | via Volume asset |
Vignette | via Volume asset |
ToneMappingEffect | via Volume asset or separate component |
Pixelation | |
Screenspace Ambient Occlusion N8 | |
Screenspace Ambient Occlusion | |
Tilt Shift Effect | |
SharpeningEffect | |
Your custom effect | See example on stackblitz |
Name | Description |
---|
SyncedRoom | Main networking component. Put in your scene to enable networking |
Networking | Used to setup backend server for networking. |
SyncedTransform | Automatically network object transformation |
SyncedCamera | Automatically network camera position and view to other users in room. You can define how the camera is being rendered by referencing an object |
WebXRSync | Networks WebXR avatars (AR and VR) |
Voip | Enables voice-chat |
Screensharing | Enables screen-sharing capabilities |
Name | Description |
---|
EventSystem | Handles raising pointer events and UI events on objects in the scene |
ObjectRaycater | Required for DragControls and Duplicatable |
GraphicsRaycaster | Same as ObjectRaycaster but for UI elements |
DragControls | Allows objects to be dragged in the scene. Requires raycaster in parent hierarchy, e.g. ObjectRaycaster |
Duplicatable | Can duplicate assigned objects by drag. Requires DragControls |
Interactable | Basic component to mark an object to be interactable. |
OrbitControls | Add to camera to add camera orbit control functionality |
SmoothFollow | Allows to interpolate smoothly to another object's transform |
DeleteBox | Will destroy objects with the Deletable component when entering the box |
Deletable | The GameObject this component is attached to will be deleted when it enters or intersects with a DeleteBox |
DropListener | Add to receive file drop events for uploading |
SpatialTrigger | Use to raise event if an object enters a specific space or area. You can also use Physics events |
SpatialTriggerReceiver | Use to receive events from SpatialTrigger |
Physics is implemented using Rapier.
Name | Description |
---|
Rigidbody | Add to make an object react to gravity (or be kinematic and static) |
BoxCollider | A Box collider shape that objects can collide with or raise trigger events when set to trigger |
SphereCollider | See BoxCollider |
CapsuleCollider | See BoxCollider |
MeshCollider | See BoxCollider |
Physics Materials | Physics materials can be used to define e.g. the bouncyness of a collider |
Read the XR docs
Name | Description |
---|
WebXR | Add to scene for VR, AR and Passthrough support as well as rendering Avatar models |
USDZExporter | Add to enable USD and Quicklook support |
XRFlag | Control when objects are visible, e.g. only in VR or AR or only in ThirdPerson |
WebARSessionRoot | Handles placement and scale of your scene in AR mode |
WebARCameraBackground | Add to access the AR camera image and apply effects or use it for rendering |
WebXRImageTracking | Assign images to be tracked and optionally instantiate an object at the image position |
WebXRPlaneTracking | Create plane meshes or colliders for tracked planes |
XRControllerModel | Can be added to render device controllers or hand models (will be created by default when enabled in the WebXR component) |
XRControllerMovement | Can be added to provide default movement and teleport controls |
XRControllerFollow | Can be added to any object in the scene and configured to follow either left or right hands or controllers |
Name | Description |
---|
GridHelper | Draws a grid |
BoxGizmo | Draws a box |
AxesHelper | Draws XYZ axes |
| Note: When you're writing custom code you can use the static Gizmos methods for drawing debugging lines and shapes |
Name | Description |
---|
GltfExport | Experimental! Use to export gltf from web runtime. |
DropListener | Receive file drop events for uploading and networking |
Spatial UI components are mapped from Unity UI (Canvas, not UI Toolkit) to three-mesh-ui. UI can be animated.
Name | Description |
---|
Canvas | Unity's UI system. Needs to be in World Space mode right now. |
Text (Legacy) | Render Text using Unity's UI Text component. Custom fonts are supported, a font atlas will be automatically generated on export. Use the font settings or the FontAdditionalCharacters component to control which characters are included in the atlas. Note: In Unity make sure to use the Legacy/Text component (TextMeshPro is not supported at the moment) |
Button | Receives click events - use the onClick event to react to it. It can be added too 3D scene objects as well. Note: Make sure to use the Legacy/Text component in the Button (or create the Button via the UI/Legacy/Button Unity context menu since TextMeshPro is not supported at the moment) |
Image | Renders a sprite image |
RawImage | Renders a texture |
InputField | Allows text input |
Note: Depending on your project, often a mix of spatial and 2D UI makes sense for cross-platform projects where VR, AR, and screens are supported. Typically, you'd build the 2D parts with HTML for best accessibility, and the 3D parts with geometric UIs that also support depth offsets (e.g. button hover states and the like).
Name | Description |
---|
SceneSwitcher | Handles loading and unloading of other scenes or prefabs / glTF files. Has features to preload, change scenes via swiping, keyboard events or URL navigation |
Name | Description |
---|
ExportInfo | Main component for managing the web project(s) to e.g. install or start the web app |
EditorSync | Add to enable networking material or component value changes to the running three.js app directly from the Unity Editor without having to reload |