Skip to main content

Coming from Unity

3dverse and Unity contain 3D engines at their core and share similarities. First and foremost their 3D engines both adhere to an ECS (Entity Component System). The following page will help Unity developers make the necessary associations to 3dverse concepts, and transition their Unity knowledge to 3dverse.

Terminology

This section contains the most common terms used in Unity and their 3dverse equivalents (or rough equivalents). Many terms are used equivalently, such as Asset, Shader and Material, and so won’t be listed here. 3dverse terms link directly to more in depth information in the documentation.

Unity 3dverse
GameObject=> Entity
Component=> Component
Prefab=> Scene Composition
MonoBehaviour=> Script
Editor=> Scene Editor
Project Browser=> Asset Browser
SRP/HDRP=> Render Graph

Installation and Collaboration

With 3dverse there is nothing to download and install. All you need is a connection to the internet. There is no special setup for collaboration to work, all you need to do is invite your collaborators to your project. You and your collaborators can work on the same 3d scene at the same time. There is only one source of truth so there is no pain and time wasted when it comes time to merge everyone’s work, and no need to continuously sync with remote changes to the project.

This is a significantly different workflow than what Unity offers, and it saves time and headaches.

Organization vs Unity Hub

The entrypoint to project management in 3dverse is the organization. A 3dverse organization can regroup many projects and manage team access in a centralized manner. Unity Hub organizes your development tools locally, whereas 3dverse organizations coordinate team permissions and project sharing in the cloud. Also note that whereas Unity Hub manages different Editor installations, in 3dverse there are no versioned releases, it is continuously deployed.

Project

When you create or open a project in Unity you are launched straight into Unity’s Editor. When you open a project in 3dverse you are launched straight into the Project Page. From here you can access the Asset Browser, where you can upload/create assets and organize them in a file hierarchy. You can also manage other aspects of your projects, such as collaborators, usage and settings.

👉 Double click on a scene to open the Scene Editor.

Scene Editor

The 3dverse Scene Editor and Unity’s Editor are very similar. Each tab in 3dverse is called an extension. Like in Unity, the tab layout is customizable. You can move the tabs around to better suit your needs.

Unity Editor

3dverse Editor

On the bottom right, click on Layout to save your tab layout, or to go back to the default layout. Click on Extensions to browse through available extensions.

Essential extensions names:

3dverse Unity
Scene Graph=> Hierarchy
Components=> Inspector (with GameObject selected)
Canvas=> Scene and Game
Asset Browser=> Project

Here are some other extensions which may be of interest:

3dverseDescription Unity
LogsWhere engine and editor logs are printed. Logs output by scripts show up here.=> Console
Material EditorEdit the material of the entity selected. Entity must contain a material reference component.=> Inspector (with material selected)
SettingsScene settings persistent between sessions.=> Project Settings
Animation Sequence EditorEditor to create and modify animation sequences.=> Timeline
Event PanelTrigger custom events which may be listened to by scripts.=> UnityEvent.Invoke

Simulation

You can start, pause and stop the simulation like in Unity. There isn’t a separate dedicated tab (i.e. Game) for the simulated scene; it all takes place in the Canvas.

By default, your editor camera is your main camera during simulation. If you’d like to assign another camera, you can do so in the Simulation section of the scene Settings.

For scripts to be able to read and react to your inputs (e.g. a camera controller or character controller script), you must assign them to Client Scripts.

Here is an example using the scene from the default Third-Person Character Controller project.

👉 Familiarize yourself with Navigation in the Scene Editor.

Other Asset Editors

3dverseHow to Access It Unity
Scene EditorDouble click a scene in Asset Browser=> Editor
Material EditorExtension in Scene Editor=> Inspector (with material selected)
Script EditorDouble click a script in Asset Browser=> Visual Studio
Animation Sequence EditorExtension in Scene Editor=> Timeline
Animation Graph EditorDouble click an animation graph in Asset Browser=> Animator
Animation Set EditorTab in Animation Graph Editor=> (No concept of Animation Set in Unity)
Shader EditorDouble click a shader in Asset Browser=> Shader Graph
Render Graph EditorDouble click a render graph in Asset Browser=> (No equivalent visual scripting tool for render pipelines in Unity)

Scripting

Unity and 3dverse have similarities and differences when it comes to scripting.

Similar to Unity, scripts are attached to entities as a component would within the Scene Editor. Each script has access to thisEntity.

All scripting takes place within the Script Editor; there is no outside code editor such as Visual Studio. The 3dverse Script Editor is a visual scripting tool. Rather than coding in C#, you will be creating and connecting nodes, specifying their flow of execution. Although the Script Editor favors a no-code visual scripting approach, the special “Custom Node” node can be injected with custom C++ code.

The Script Editor, which contains the Code and Event Maps editor as well.

The Script Editor, which contains the Code and Event Maps editor as well.

3dverse uses an event-based approach to scripting. Scripts can listen to and trigger events. Similar to Unity’s lifecycle methods (e.g. Start(), Update(), onCollisionEnter() ), scripts can listen to system events such as the simulation starting, a frame tick, or physics events such as collision and trigger enter/exit. To orchestrate behavior using multiple scripts, custom events can be used. A script can trigger custom events, which can then be listened to within other scripts.

The following is a comparison of a simple script which logs when the simulation starts in Unity and 3dverse:

Unity

public class MyScript : MonoBehaviour
{
void Start()
{
Debug.Log("It is Unity!");
}
}

3dverse

Advanced Terminology

Here are some more advanced terminology equivalents in the physics and skeletal animation domains.

Physics Terminology

Unity 3dverse
Rigidbody=> Rigidbody
Collider (Box Collider, Sphere Collider, Capsule Collider, etc.)=> Geometry (Box Geometry, Sphere Geometry, Capsule Geometry, etc.)
Physics Material=> Physics Material
Joint (Fixed Joint, Hinge Joint, etc.)=> Constraint

Skeletal Animation Terminology

Unity 3dverse
Animation (component)=> Animation Controller (component)
Animator Controller (asset)=> Animation Graph (asset)
Animation Clip (asset)=> Animation (asset)
Avatar (asset)=> Closest equivalent is Skeleton (asset). No asset specifically tailored to humanoid skeleton.
Animator (window)=> Animation Graph Editor
Animation (window)=> No editor to specifically work on animation clips.