示例#1
0
    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();
        });
    }
示例#3
0
 public void SetSceneDetilas(SceneDetailsBean sceneDetails)
 {
     building_data = JsonUtil.ToJson(sceneDetails);
 }
示例#4
0
    public SceneDetailsBean GetSceneDetilas()
    {
        SceneDetailsBean sceneDetails = JsonUtil.FromJson <SceneDetailsBean>(building_data);

        return(sceneDetails);
    }