/// <summary> /// 获取组模板 /// </summary> /// <param name="setting"></param> /// <returns></returns> public static AddressableAssetGroupTemplate GetTemplete(AddressableAssetSettings setting, bool autoCreate) { string groupTempleteName = @"__generated"; string groupTempleteDescription = @"group templete only use for auto build"; System.Func <ScriptableObject, bool> groupTempleteFilter = delegate(ScriptableObject v) { var gt = v as AddressableAssetGroupTemplate; return(gt.Name.ToLower().Equals(groupTempleteName)); }; var groupTemplete = setting.GroupTemplateObjects.FirstOrDefault(groupTempleteFilter) as AddressableAssetGroupTemplate; if (groupTemplete == null && autoCreate) { if (!setting.CreateAndAddGroupTemplate(groupTempleteName, groupTempleteDescription, typeof(BundledAssetGroupSchema), typeof(ContentUpdateGroupSchema))) { Debug.LogError("未设置 Group 模板"); return(null); } groupTemplete = setting.GroupTemplateObjects.FirstOrDefault(groupTempleteFilter) as AddressableAssetGroupTemplate; setting.SetDirty(AddressableAssetSettings.ModificationEvent.GroupTemplateAdded, groupTemplete, true, true); } if (groupTemplete == null) { return(null); } var bundleSchema = groupTemplete.GetSchemaByType(typeof(BundledAssetGroupSchema)) as BundledAssetGroupSchema; bundleSchema.BuildPath.SetVariableByName(setting, "RemoteBuildPath"); bundleSchema.LoadPath.SetVariableByName(setting, "RemoteLoadPath"); EditorUtility.SetDirty(bundleSchema); var updateSchema = groupTemplete.GetSchemaByType(typeof(ContentUpdateGroupSchema)) as ContentUpdateGroupSchema; updateSchema.StaticContent = false; EditorUtility.SetDirty(updateSchema); return(groupTemplete); }