Dual Monitor Application
Dual monitor functionality is intended to enable the creation of dual monitor applications. Using this pipeline, you can have a windowed application on your 2D monitor while rendering a holographic scene on your Looking Glass device. This is achieved by creating an inter-process communicator (IPC) between two Unity applications.
Reviewing the Example Scene
To fully load the example scene:
Open
LookingGlass\Examples\7 - Dual Monitor ApplicationSelect the
DMA BuilderGameObject from the scene hierarchyIn the
Dual Monitor Application Managerscript, select theSetup\\Open Scenesbutton
The Setup\\Open Scenes button loads in the _extendedUI scene of the same name. This scene drives the UI on the 2D window. If a scene doesn't exist by this name, this button will create it.
The additional example scene that gets incorporated includes:
It's own DMA Builder game object, with the Dual Monitor Application Manager script field for Display set to Window 2D. This is required so that the scenes can identify which displays they drive.
A canvas to manage the UI. Any Unity content is allowable here.
An IPC (inter-process communicator) that sends events between the two scenes.
Creating your Own Scene
Follow these steps.
Create a New Scene
Remove the default Unity camera and add a
Hologram Camerato the scene, found inAssets/LookingGlass/Prefabs/Add the
Dual Monitor Applicationprefab to your sceneSelect the
DMA Builderfrom the scene hierarchy, and clickSetup/Open Scene- you'll need to save your scene firstAdd a
DMA Builderto the second sceneSet the second scene's
Dual Monitor Application'sDisplaytoWindow 2DAdd a
DMA IPCobject to each scene (if cross-application communication is requiredSet the
DMA IPC'sDual Monitor Application Base IPCtoLooking Glassfor the Looking Glass scene, andWindow 2Dfor the 2D sceneSet the
Inter Process Communicator'sRoletoReceiverfor the Looking Glass scene andSenderfor the 2D sceneChange the
Inter Process Communicator'sSigning Charto something new that matches in both scenes (recommended)
If the app requires UI elements on the 2D, this can be done using conventional Unity UI elements. There is a prefab provided for you for convenience, DMA Canvas, though you will need to additionally add an Event System to your scene for Unity UI events.
Building a Release
In order to support all Looking Glass Pro functionality, you must build your applications in an unconventional way. Unity's built-in build pipeline will not work. To build the proper way:
Open File > Build Settings... and add both your scenes and click Add Open Scenes to add both scenes to the "Scenes in Build" field
Close the Build Settings window
Select any DMA Builder game object
Click the Build (Dual Monitor Application) button in the Dual Monitor Application Manager script in the inspector
Select an empty folder to bundle your application into
Scripting IPC Functionality
In order to script your own functionality, follow the following steps:
In your script, add a reference to the
InterProcessCommunicatorin your scene.To send data (typically from the 2D UI to the Looking Glass display) call
InterProcessCommunicator.SendDatawith a string as the parameter. This will be sent to the receiver. You can call this function either from a script or from UI events.In the receiving scene (typically the Looking Glass scene), in a script, create a reference to the
InterProcessCommunicatorin that scene.Create a function named
ReceiveMessage(string message).This function will now be called when a message is received. Write some logic within this function to handle the various messages the scene will be receiving.
Last updated
Was this helpful?