//创建物体 public static void SelectDB(AbstractMap _mapController) { using (var db = new LiteDB.LiteDatabase(Path.Combine(Application.streamingAssetsPath, "mylitedb.db"))) { var placements = db.GetCollection <Placement>("placements"); var result = placements.FindAll(); foreach (var VARIABLE in result) { Debug.Log(VARIABLE.Name); string[] l = SplitStr(VARIABLE.Latlon); string[] r = SplitStr(VARIABLE.Rotation); string[] s = SplitStr(VARIABLE.Scale); Vector2d v2D = new Vector2d(Convert.ToDouble(l[0]), Convert.ToDouble(l[1])); Vector3 rotation = new Vector3(Convert.ToSingle(r[0]), Convert.ToSingle(r[1]), Convert.ToSingle(r[2])); Vector3 scale = new Vector3(Convert.ToSingle(s[0]), Convert.ToSingle(s[1]), Convert.ToSingle(s[2])); PlaceMentSerial placeMentSerial = new PlaceMentSerial() { Name = VARIABLE.Name, Latlon = v2D, Rotation = rotation, Scale = scale }; PutObj.CreateBuildMap(_mapController, VARIABLE.Name, v2D, rotation, scale); Debug.Log(MapData.Placements); MapData.Placements.Add(placeMentSerial); foreach (var VARIABLE1 in MapData.Placements) { Debug.Log(VARIABLE1.Name); Debug.Log(VARIABLE1.Rotation); Debug.Log(VARIABLE1.Scale); } } } }
void Update() { if (isLoad) { if (_mapController.AbsoluteZoom == 16) { if (i != _mapController.AbsoluteZoom) { foreach (var item in towers) { Destroy(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); ActivetowerList.Remove(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); } } i = _mapController.AbsoluteZoom; foreach (var item in towers) { Vector2d r = Conversions.LatitudeLongitudeToTileId(item.latlon.x, item.latlon.y, _mapController.AbsoluteZoom); bool flag = true; foreach (var VARIABLE in ActivetowerList) { if (VARIABLE.GetComponent <TowerID>().id == item.id) { flag = false; } } foreach (var item1 in transform.GetComponentsInChildren <Transform>()) { if (item1.GetComponent <MeshCollider>() == null) { if (item1.tag == "Tile") { item1.gameObject.AddComponent <MeshCollider>(); } } } if (_mapController.MapVisualizer.ActiveTiles.ContainsKey(new UnwrappedTileId(_mapController.AbsoluteZoom, (int)r.x, (int)r.y)) && flag) { Debug.Log("在范围内实例化"); //在范围内实例化 GameObject go; StartCoroutine(WaiforTower()); if (item.type == "NZT") { go = PutObj.CreateBuildMap(_mapController, "nzt", item.latlon, _mapController.AbsoluteZoom); } else { go = PutObj.CreateBuildMap(_mapController, "zxt", item.latlon, _mapController.AbsoluteZoom); } go.AddComponent <TowerID>().id = item.id; go.GetComponent <TowerID>().towerId = item.towerId; go.GetComponent <TowerID>().towerState = item.towerState; go.GetComponent <TowerID>().jichu = item.jichu; go.GetComponent <TowerID>().zuta = item.zuta; go.GetComponent <TowerID>().jiaxian = item.jiaxian; ActivetowerList.Add(go); } if (!_mapController.MapVisualizer.ActiveTiles.ContainsKey(new UnwrappedTileId(_mapController.AbsoluteZoom, (int)r.x, (int)r.y)) && !flag) { Debug.Log("不在范围内,删除"); Destroy(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); ActivetowerList.Remove(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); //删除不在范围内的hudUI //Destroy(HUDController.Instance.UHD_UIList.Find((GameObject s) => s.GetComponent<CircleItem>().HUD_ID == item.id)); //HUDController.Instance.UHD_UIList.Remove(HUDController.Instance.UHD_UIList.Find((GameObject s) => // s.GetComponent<CircleItem>().HUD_ID == item.id)); } } } else { foreach (var item in towers) { Destroy(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); ActivetowerList.Remove(ActivetowerList.Find((GameObject s) => s.GetComponent <TowerID>().id == item.id)); } } } }