arena-unity Editor
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.
Signin
In the Unity Editor, pressing Play
will begin the signin authorization flow.
Signout
Two options:
- Editor: Select the menu item
ARENA > Signout
. - Runtime (Play): Click the
Signout
button on theArenaClientScene
Component.
Exporting Unity Objects as GLTF
See our model import/export documentation.
During Runtime (Play)
- If objects are stored in the ARENA Persistence Database, they will be child objects of the
ARENA
GameObject. - You may create or change an object and if it is a child of the
ARENA
GameObject, 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.
Sorting Objects
- Settings:
Edit > Preferences > General > Enable Alpha Numeric Sorting
- Change the sorting mode with top right button of the
Hierarchy
window.
Game Window
This is a display of the currently focused Camera in the scene.
Navigation
Set the Inspector
: ArenaClientScene
object option Camera Auto Sync
to true, enter the ARENA scene web page, then navigation in the ARENA will also move the Game
view.
Other Cameras
In the Inspector
: 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.
Scene Window
This is the editor’s view of the scene, allowing you to manipulate object Transforms graphically using toolbar options.
Navigation
Use the Unity controls.
Project Window
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.
Console Window
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
The ArenaClientScene
Script controls the connection and authentication to the ARENA MQTT broker, as well as some client-side ARENA scene state.
name | type | default | description |
---|---|---|---|
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. |
Script | ArenaClientScene |
– | 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 | Camera |
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
The 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.
name | type | default | description |
---|---|---|---|
Publish Unity Data | button | – | Manual button to publish an object update. Enabled only for ARENA message type object (transform changes will update automatically). |
Script | ArenaObject |
– | 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 data attributes. This can be manually edited and published with the Publish Json Data button. |
Publish Json Data | button | – | Manual button to publish edited Json Data . Enabled when Json Data is well formatted. |
Animation | AnimationClip[] , buttons |
[] | List of animations when included in model. Adds Play, Stop, Rewind buttons for each AnimationClip . |
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.
ArenaMeshCircle
ArenaMeshCone
ArenaMeshBox
ArenaMeshCylinder
ArenaMeshIcosahedron
ArenaMeshOctahedron
ArenaMeshPlane
ArenaMeshRing
ArenaMeshSphere
ArenaMeshTorus
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.