The ArenaUnity package can be used to collaboratively stage and edit ARENA scenes. Be sure to use the project setup instructions to install the package. For the
Runtime interface, see the ARENA Unity Runtime instructions.
In the Unity Editor, pressing
Play will begin the signin authorization flow.
- Editor: Select the menu item
ARENA > Signout.
- Runtime (Play): Click the
Signoutbutton on the
Exporting Unity Objects as GLTF
Since the ARENA uses GLTF models as a web-friendly format, it is useful to know how to export your Unity work as a GLTF model, which the ARENA web can render.
- We recommend using 2 Scenes separately: a
Design Viewscene and an
- In scene
Design View, use an available plug-in to export your model to GLTF file format.
- Store this model online, like the on the ARENA File Store or Dropbox.
- In scene
ARENA Viewload your ARENA scene.
- Import your model, adding an ARENA object using the menu
GameObject > ARENA > GLTF Modeland provide your model URL.
During Runtime (Play)
- If objects are stored in the ARENA Persistence Database, they will be child objects of the
- You may create or change an object and if it is a child of the
ARENAGameObject, its properties will be published to the ARENA Persistence Database.
- Incoming authorized messages may also add/change/remove your ARENA Unity objects.
Hierarchy Window: Arena Client Runtime
Here, any ARENA objects are highlighted in green text, and the Play button should open the list of ARENA objects automatically.
Edit > Preferences > General > Enable Alpha Numeric Sorting
- Change the sorting mode with top right button of the
This is a display of the currently focused Camera in the scene.
ArenaClientScene object option
Camera Auto Sync to true, enter the ARENA scene web page, then navigation in the ARENA will also move the
ArenaClientScene object option
Camera For Display, select from other cameras present on the MQTT bus. Caution: Some GLTF models also come with embedded Camera objects which may show up here.
This is the editor’s view of the scene, allowing you to manipulate object Transforms graphically using toolbar options.
Use the Unity controls.
Any imported models, images or other resources are stored locally here in the
Assets/ArenaUnity folder, mimicking their own URL structure. You can review sub-elements of GLTF models here and their animations. To save space and download time, any video and audio files are not yet imported.
The Console will output status, warning, and error logging here as well as MQTT messages you specify here according to the Log Mqtt options specified in the next section.
Inspector Window: ArenaClientScene
ArenaClientScene Script controls the connection and authentication to the ARENA MQTT broker, as well as some client-side ARENA scene state.
|Signout||button||–||Manual button to signout from the ARENA and stop the Runtime.|
|Scene Url||string||null||Browser URL for scene as a clickable link highlighted in blue text.|
||–||The script instance to manage the MQTT runtime.|
|Broker Address||string||arenaxr.org||Host name of the ARENA MQTT broker|
|Namespace Name||string||null||Namespace (automated with username), but can be overridden|
|Scene Name||string||example||Name of the scene, without namespace (‘example’, not ‘username/example’|
|Camera For Display||
||MainCamera||Cameras for Display 1|
|Camera Auto Sync||bool||false||Synchronize camera display to first ARENA user in the scene|
|Log Mqtt Objects||bool||false||Console log MQTT object messages|
|Log Mqtt Users||bool||false||Console log MQTT user messages|
|Log Mqtt Events||bool||false||Console log MQTT client event messages|
|Log Mqtt Non Persist||bool||false||Console log MQTT non-persist messages|
|Transform Publish Interval||int||30||Publish per frames frequency to publish detected transform changes (0 to stop)|
|string||null||Authenticated user email account|
|Permissions||string||null||MQTT JWT Auth Payload and Claims|
Inspector Window: ArenaObject
ArenaObject Script monitors Transform and Name changes to an ARENA object, as well as a few other requests, like delete. It also allows the user to manually edit and update ARENA object JSON message data.
|Publish Unity Data||button||–||Manual button to publish an object update. Enabled only for ARENA message type
||–||The script instance to manage an ARENA object runtime.|
|Message Type||string||object||Message type in persistence storage schema|
|Persist||bool||true||Persist this object in the ARENA server database (default true = persist on server)|
|Json Data||string||null||ARENA JSON-encoded message
|Publish Json Data||button||–||Manual button to publish edited
||||List of animations when included in model. Adds
Inspector Window: ArenaMesh
Each primitive mesh
ArenaObject in our ARENA scene is rendered by a custom mesh that preserves its non-inherited size attributes for the
Mesh, separate from its inherited size attributes for
Scale. Each primitive has a different set of attributes which we mimic from A-Frame’s geometries. The
ArenaMesh scripts available are as follows.
ARENA Mesh Tool
The ARENA Mesh Tool is a Unity
CustomTool which allows you to manipulate the
Mesh dimensions of ARENA primitive geometries without having to modify the
Scale component to change the size of an object.
Scale is inherited by children objects and
Mesh is not inherited.