/// <summary>
        /// WorldAnchor保存完了処理
        /// </summary>
        /// <param name="self"></param>
        /// <param name="go"></param>
        /// <param name="success"></param>
        private void SavedEvent(WorldAnchorControl self, GameObject go, bool success)
        {
            // WorldAnchor保存完了処理
            var activeCount = 0;

            for (var i = 0; i < worldAnchorObjects.Length; i++)
            {
                if (go.name == worldAnchorObjects[i].name && success == true)
                {
                    isWorldAnchorObjects[i] = true;
                }
                if (isWorldAnchorObjects[i] == true)
                {
                    activeCount++;
                }
            }

            if (activeCount > worldAnchorObjects.Length * StaticParameter.minAnchorLength)
            {
                // HubAnchor組み立て
                if (SavedHubAnchor != null)
                {
                    SavedHubAnchor();
                }
                self.SavedEvent -= SavedEvent;
            }
        }
Beispiel #2
0
 void Start()
 {
     anchor = GetComponent <WorldAnchorControl>();
     if (anchor == null)
     {
         anchor = gameObject.AddComponent <WorldAnchorControl>();
     }
     Init();
 }
 /// <summary>
 /// Anchor情報のWorldAnchorからの取得
 /// </summary>
 public void LoadAnchorData(WorldAnchorControl anchor, JsonHubAnchor json)
 {
     jsonHubAnchor = json;
     // WorldAnchorの読み込み
     anchor.LoadedEvent += loadedEvent;
     for (int i = 0; i < worldAnchorObjects.Length; i++)
     {
         isWorldAnchorObjects[i] = false;
         anchor.LoadWorldAnchor(worldAnchorObjects[i]);
     }
 }
        /// <summary>
        /// RootHubとCenterの設置とworldanchorの設置処理
        /// </summary>
        /// <param name="rootHub"></param>
        /// <param name="center"></param>
        /// <param name="anchor"></param>
        public void SetRootHubAndRootObjectTransform(Transform rootHub, Transform center, WorldAnchorControl anchor)
        {
            rootHubObject.transform.SetPositionAndRotation(rootHub.position, rootHub.rotation);

            centerObject.transform.SetPositionAndRotation(center.position, center.rotation);
            frontHubObject.transform.position = centerObject.transform.position + new Vector3(centerObject.transform.forward.x, 0, centerObject.transform.forward.z);
            centerObject.transform.LookAt(frontHubObject.transform, Vector3.up);

            var r = new System.Random();

            for (var i = 0; i < worldAnchorObjects.Length; i++)
            {
                anchor.DeleteWorldAnchor(worldAnchorObjects[i]);
                var buf = centerObject.transform.position;
                buf.x += ((float)r.NextDouble() - 0.5f) * StaticParameter.anchorDistance * 2.0f;
                buf.z += ((float)r.NextDouble() - 0.5f) * StaticParameter.anchorDistance * 2.0f;
                worldAnchorObjects[i].transform.position = buf;
                isWorldAnchorObjects[i] = false;
                anchor.SavedEvent      += SavedEvent;
                anchor.SaveWorldAnchor(worldAnchorObjects[i]);
            }
        }