1

In a mixed reality application developed with Unity 2018.1.1f1 and the Mixed Reality Toolkit, I have two groups of holograms:

  • Shared Holograms (instances shared with other users)
  • Local Holograms (a specific instance for each user)

The local holograms and the shared ones have the HandDraggable.cs script attached so that the user can reposition each hologram with air tap and gestures.

Now. When the user is not yet connected to the sharing service, the HandDraggable.cs script works perfectly fine; this means that the user can air-tap an hologram an move it around as expected.

However, as soon as the user connects to the sharing service, the HandDraggable.cs script stops working on the local holograms only. This means that when the user air-tap the non shared hologram and then tries to move it, the hologram does not move.

Strangely this issue does not affect the shared holograms which can be air-tapped by the user and moved around as expected.

In the picture below the scene hierarchy is shown along with the "Handle" GameObject which hosts the HandDraggable.cs script which has a reference to the parent GameObject transform.

GameObject with the HandDraggable.cs attached to

Question: why do the HandDraggable.cs becomes unresponsive on non shared holograms when the sharing session starts?

  • Has your HandDraggable script been customized from the Toolkit? – Dtb49 Jun 28 '18 at 15:28
  • No. I didn’t modify it. Just the AppDialog GameObject is not spawned by the Sync Spawn Object manager nor is a child of an empty GameObject with the ImportExportAnchorManager.cs script attached to it. Maybe this is not correct way of not sharing a GameObject between peers? – Oreste Riccardo Natale Jun 28 '18 at 20:06
  • Are you sure it's not the shared object's that aren't moving? Unless you specifically write some networking code then your shared objects will not move over a session. Also, if the object's are in the scene at the start and the 2nd player also has object's in their scene then more than likely those are the 2nd player's shared objects. – Dtb49 Jun 29 '18 at 12:58
  • Well, yes. The shared objects are associated each to a specific data object derived from SyncObject using the Sync Spawn Object manager script. Then these shared objects are spawned once the sharing session begins. And effectively you can drag the shared objects and this movement is reflected into the App run by the the other peers. Instead the AppDialog game object is not explicitly shared and each peer should have its own instance; however as soon as the shared session starts, this GameObject can't be dragged around anymore. – Oreste Riccardo Natale Jun 30 '18 at 09:39
  • Could it be that for some reasons I’m not aware of, a world anchor is placed on my AppDialog GameObject? Because in this case the HandDraggable script would not be able to move the GameObject. – Oreste Riccardo Natale Jul 01 '18 at 16:05

0 Answers0