Exemple #1
0
    /// <summary>
    /// 从数据库储存数据加载building
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public static Building Create(BuildingSaveData data)
    {
        Model model = LocalAssetUtil.GetModel(data.ModelDataId);

        if (model == null)
        {
            return(null);
        }
        GameObject obj = CreateGameObjcet(model, data.Name);

        ((TransformGroup)data.TransformGroupSaveData).Inject(obj.transform);
        Building building = AddComponentBuilding(obj.transform, model);

        if (data.MaterialColorSaveData != null)
        {
            Material material = MaterialUtil.Create();
            material.color    = (Color)data.MaterialColorSaveData;
            building.Material = material;
        }
        #region animation
        building.isAnimOn            = data.IsAnimOn;
        building.appearanceAnimDatas = AnimDataUtil.Parse(data.AppearanceAnimDataSaveDatas);
        building.normalAnimDatas     = AnimDataUtil.Parse(data.NormalAnimDataSaveDatas);
        #endregion
        return(building);
    }
 public BuildingSaveData(Building building)
 {
     this.Name                        = building.name;
     this.ModelDataId                 = building.modelDataId;
     this.TransformGroupSaveData      = (TransformGroupSaveData)building.transformGroup;
     this.IsAnimOn                    = building.isAnimOn;
     this.NormalAnimDataSaveDatas     = AnimDataUtil.ToSaveData(building.normalAnimDatas);
     this.AppearanceAnimDataSaveDatas = AnimDataUtil.ToSaveData(building.appearanceAnimDatas);
     if (building.isChangeMaterial)
     {
         this.MaterialColorSaveData = (Vector4SaveData)building.Material.color;
     }
 }