HoloLensのシェアリングのセッションから退室するとき、自分が生成したオブジェクトをすべて削除したいときがあります。不完全ではありますが、以下のようにすれば削除することができます。
private void DeleteMyMagnets() { var magnets = GameObject.FindGameObjectsWithTag("Magnet"); foreach (var magnet in magnets) { var syncModelAccessor = magnet.GetComponent<DefaultSyncModelAccessor>(); if (syncModelAccessor != null) { var syncSpawnObject = (SyncSpawnedObject)syncModelAccessor.SyncModel; if(syncSpawnObject.OwnerId == SharingStage.Instance.Manager.GetLocalUser().GetID()) { // 磁石のOnDestroyを走らせる Object.DestroyImmediate(magnet); spawnManager.Delete(syncSpawnObject); } } } }
なお、自分のUserIDは以下のように取り出すことができます:
int myUserId = SharingStage.Instance.Manager.GetLocalUser().GetID();
ちなみに、SharingStageにぶら下がっているSyncSpawnedObjectの一覧はUnityのインスペクタで見ることができます。