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:
3dverse | Description | Unity |
---|---|---|
Logs | Where engine and editor logs are printed. Logs output by scripts show up here. | => Console |
Material Editor | Edit the material of the entity selected. Entity must contain a material reference component. | => Inspector (with material selected) |
Settings | Scene settings persistent between sessions. | => Project Settings |
Animation Sequence Editor | Editor to create and modify animation sequences. | => Timeline |
Event Panel | Trigger 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.
Navigation
👉 Familiarize yourself with Navigation in the Scene Editor.
Other Asset Editors
3dverse | How to Access It | Unity |
---|---|---|
Scene Editor | Double click a scene in Asset Browser | => Editor |
Material Editor | Extension in Scene Editor | => Inspector (with material selected) |
Script Editor | Double click a script in Asset Browser | => Visual Studio |
Animation Sequence Editor | Extension in Scene Editor | => Timeline |
Animation Graph Editor | Double click an animation graph in Asset Browser | => Animator |
Animation Set Editor | Tab in Animation Graph Editor | => (No concept of Animation Set in Unity) |
Shader Editor | Double click a shader in Asset Browser | => Shader Graph |
Render Graph Editor | Double 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.
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. |