using UnityEngine; using System.Collections.Generic; using Thousandto.Editor.Excel; using Thousandto.Code.Logic; using Thousandto.Core.Asset; namespace Thousandto.Editor.ModelEditor { //模型编辑器数据管理器 public static class ModelDataManager { private static Dictionary _dataTable = null; private static ExcelInfo _curExcelInfo = null; public static Dictionary DataTable { get { return _dataTable; } } public static void Load() { var path = "../../Gamedata/Config/client/ModelConfig.xlsx"; var excelInfo = ExcelReader.Read(path); if (excelInfo == null) return; _curExcelInfo = excelInfo; _dataTable = new Dictionary(excelInfo.IdValuesTable.Count); var iter = excelInfo.IdValuesTable.GetEnumerator(); try { while (iter.MoveNext()) { var modelData = new ModelData(iter.Current.Key, excelInfo); _dataTable.Add(modelData.CfgID, modelData); } } finally { iter.Dispose(); } } public static void Save() { if (_dataTable == null) return; if (_curExcelInfo == null) return; var iter = _dataTable.GetEnumerator(); try { while(iter.MoveNext()) { iter.Current.Value.SaveToExcel(); } } finally { iter.Dispose(); } var path = "../../Gamedata/Config/client/ModelConfig.xlsx"; ExcelWriter.Write(path, _curExcelInfo); } //从表格中获取模型类型 public static ModelTypeCode GetModelType(RoleSkinModelType type) { switch (type) { case RoleSkinModelType.PlayerBody://角色身体 return ModelTypeCode.Player; case RoleSkinModelType.PlayerWeapon://武器 return ModelTypeCode.Weapon; case RoleSkinModelType.GodWeapon://神兵武器 return ModelTypeCode.GodWeapon; case RoleSkinModelType.PlayerWing: //翅膀 return ModelTypeCode.Wing; case RoleSkinModelType.PlayerMount://角色坐骑 return ModelTypeCode.Mount; case RoleSkinModelType.MonsterBody://怪物,npc主体 return ModelTypeCode.Monster; case RoleSkinModelType.CollectionBody://采集物主体 return ModelTypeCode.Object; case RoleSkinModelType.PlayerStrengthenVfx://角色强化特效 return ModelTypeCode.StrengthenVfx; case RoleSkinModelType.DrapItem: //用于展示的武器 return ModelTypeCode.Object; case RoleSkinModelType.GodWeaponVfx: return ModelTypeCode.WeaponVFX; default: return ModelTypeCode.Object; } } //从表格中获取模型类型 public static ModelTypeCode GetVfxModelType(RoleSkinModelType type) { switch (type) { case RoleSkinModelType.PlayerBody://角色身体 return ModelTypeCode.BodyVFX; case RoleSkinModelType.PlayerWeapon://武器 case RoleSkinModelType.GodWeapon://神兵武器 return ModelTypeCode.WeaponVFX; case RoleSkinModelType.PlayerWing: //翅膀 return ModelTypeCode.WingVFX; case RoleSkinModelType.PlayerMount://角色坐骑 return ModelTypeCode.MountVFX; case RoleSkinModelType.MonsterBody://怪物,npc主体 return ModelTypeCode.MonsterVFX; case RoleSkinModelType.CollectionBody://采集物主体 return ModelTypeCode.CollectionVFX; case RoleSkinModelType.PlayerStrengthenVfx://角色强化特效 return ModelTypeCode.BodyVFX; case RoleSkinModelType.DrapItem: //用于展示的武器 return ModelTypeCode.OtherVFX; default: return ModelTypeCode.OtherVFX; } } public static void Clear() { if (_dataTable != null) { _dataTable.Clear(); } _dataTable = null; } } }