public void SaveSceneData() { SceneInfoBean sceneInfo = new SceneInfoBean(); sceneInfo.id = sceneId; sceneInfo.valid = 1; SceneDetailsBean sceneDetails = new SceneDetailsBean(); for (int i = 0; i < BuildingHandler.Instance.transform.childCount; i++) { Transform tfItem = BuildingHandler.Instance.transform.GetChild(i); BuildingBase baseBuilding = tfItem.GetComponent <BuildingBase>(); if (baseBuilding == null) { continue; } SceneDetailsItemBean sceneDetailsItem = new SceneDetailsItemBean(); sceneDetailsItem.buildingId = baseBuilding.buildingInfo.id; sceneDetailsItem.position = new Vector3Bean(tfItem.position); sceneDetailsItem.size = new Vector3Bean(tfItem.localScale); sceneDetailsItem.angle = new Vector3Bean(tfItem.eulerAngles); sceneDetails.listBuildingData.Add(sceneDetailsItem); } sceneInfo.SetSceneDetilas(sceneDetails); sceneInfoService.UpdateData(sceneInfo); }
public void InitSceneData(long sceneId, Action callBack) { manager.GetSceneInfo(sceneId, (sceneInfo) => { SceneDetailsBean sceneDetails = sceneInfo.GetSceneDetilas(); for (int i = 0; i < sceneDetails.listBuildingData.Count; i++) { SceneDetailsItemBean sceneDetailsItem = sceneDetails.listBuildingData[i]; GameObject objModel = manager.GetSceneBuildingModel(sceneDetailsItem.buildingId); GameObject objItem = Instantiate(gameObject, objModel); objItem.transform.position = sceneDetailsItem.position.GetVector3(); objItem.transform.localScale = sceneDetailsItem.size.GetVector3(); objItem.transform.eulerAngles = sceneDetailsItem.angle.GetVector3(); BuildingInfoBean buildingInfo = manager.GetBuildingInfo(sceneDetailsItem.buildingId); BuildingBase baseBuilding; switch (buildingInfo.GetBuildingType()) { case BuildingTypeEnum.Ground: baseBuilding = objItem.AddComponent <BuildingGround>(); break; case BuildingTypeEnum.Person: baseBuilding = objItem.AddComponent <BuildingPerson>(); break; case BuildingTypeEnum.Obstacle: baseBuilding = objItem.AddComponent <BuildingObstacle>(); break; default: baseBuilding = objItem.AddComponent <BuildingBase>(); break; } baseBuilding.buildingInfo = buildingInfo; } callBack?.Invoke(); }); }
public void SetSceneDetilas(SceneDetailsBean sceneDetails) { building_data = JsonUtil.ToJson(sceneDetails); }
public SceneDetailsBean GetSceneDetilas() { SceneDetailsBean sceneDetails = JsonUtil.FromJson <SceneDetailsBean>(building_data); return(sceneDetails); }