using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.ResourceManagement.Util; using UnityEngine.Serialization; namespace UnityEditor.AddressableAssets.Settings { // TODO: OBSELETE: This is replaced with AddressableAssetGroupTemplate, this is needed to update existing setups to new Preset method /// <summary> /// Contains a set of schemas used by the GUI to create predefined asset groups. /// </summary> [Serializable] public class AddressableAssetGroupSchemaTemplate { [FormerlySerializedAs("m_displayName")] [SerializeField] string m_DisplayName; [FormerlySerializedAs("m_description")] [SerializeField] string m_Description; [FormerlySerializedAs("m_schemaTypes")] [SerializeField] List<SerializedType> m_SchemaTypes; /// <summary> /// The display name of the template. /// </summary> public string DisplayName { get { return m_DisplayName; } } /// <summary> /// the description of the template. /// </summary> public string Description { get { return m_Description; } } /// <summary> /// The types of schemas in this template. /// </summary> /// <returns>The array of schema types.</returns> public Type[] GetTypes() { var types = new Type[m_SchemaTypes.Count]; for (int i = 0; i < types.Length; i++) types[i] = m_SchemaTypes[i].Value; return types; } /// <summary> /// Creates a template with the specified name, description and schema types. /// </summary> /// <param name="name">The name of the template.</param> /// <param name="descr">The template description.</param> /// <param name="types">The schema types for the template.</param> /// <returns>The newly created schema template.</returns> public static AddressableAssetGroupSchemaTemplate Create(string name, string descr, params Type[] types) { var st = new AddressableAssetGroupSchemaTemplate {m_DisplayName = name, m_Description = descr}; st.m_SchemaTypes = new List<SerializedType>(types.Length); for (int i = 0; i < types.Length; i++) st.m_SchemaTypes.Add(new SerializedType {Value = types[i]}); return st; } } }