private static void OnRemoveTemplate(SerializedObject so, ME.ECS.DataConfigs.DataConfigTemplate template) { var config = so.targetObject as ME.ECS.DataConfigs.DataConfig; var allTemplates = new System.Collections.Generic.HashSet <ME.ECS.DataConfigs.DataConfigTemplate>(); foreach (var guid in config.templates) { if (string.IsNullOrEmpty(guid) == true) { continue; } var path = AssetDatabase.GUIDToAssetPath(guid); if (string.IsNullOrEmpty(path) == true) { continue; } var temp = AssetDatabase.LoadAssetAtPath <ME.ECS.DataConfigs.DataConfigTemplate>(path); if (temp == null) { continue; } allTemplates.Add(temp); } config.RemoveTemplate(template, allTemplates); so.UpdateIfRequiredOrScript(); }
private static void OnAddTemplate(SerializedObject so, ME.ECS.DataConfigs.DataConfigTemplate template) { var config = so.targetObject as ME.ECS.DataConfigs.DataConfig; config.AddTemplate(template); so.UpdateIfRequiredOrScript(); }
private void RemoveTemplate(ME.ECS.DataConfigs.DataConfig dataConfig, ME.ECS.DataConfigs.DataConfigTemplate template, System.Collections.Generic.HashSet <ME.ECS.DataConfigs.DataConfigTemplate> allTemplates) { var path = AssetDatabase.GetAssetPath(template); var guid = AssetDatabase.AssetPathToGUID(path); if (string.IsNullOrEmpty(guid) == true) { return; } var list = dataConfig.templates.ToList(); list.Remove(guid); dataConfig.templates = list.ToArray(); dataConfig.RemoveTemplate(template, allTemplates); dataConfig.OnScriptLoad(); this.Save(dataConfig); }