#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEditor.AddressableAssets;
using UnityEditor.AddressableAssets.GUI;
using UnityEditor.AddressableAssets.Settings;
using UnityEngine;
namespace Nemo
{
internal class LCHAddressableAssetsWindow : EditorWindow
{
static LCHAddressableAssetsWindow Instance;
static AddressableAssetSettings setting { get { return AddressableAssetSettingsDefaultObject.Settings; } }
const string LCH_GROUP = "LCH Group";
[MenuItem("LCH/Addressable", false, 0)]
internal static void Init()
{
//Assembly asf = Assembly.Load("Unity.Addressables.Editor");
//Type t = asf.GetType("UnityEditor.AddressableAssets.GUI.AddressableAssetsWindow");
//var window = GetWindow(t, true);
//window.titleContent = new GUIContent("Nemo Addressables Groups");
//window.Show(true);
CreateGroup(LCH_GROUP);
}
private static bool FindGroup(string groupName)
{
for (int i = 0; i < setting.groups.Count; ++i)
{
if (groupName == setting.groups[i].Name) { return true; }
}
return false;
}
private static void CreateGroup(string name)
{
if (!FindGroup(name))
{
AddressableAssetGroup group = setting.CreateGroup(name, false, false, true, new List<AddressableAssetGroupSchema>());//创建Group
string guid = AssetDatabase.AssetPathToGUID("Assets/Res/Cube/Sphere 1.prefab");//要打包的资产条目 将路径转成guid
AddressableAssetEntry entry = setting.CreateOrMoveEntry(guid, group, false, true);//要打包的资产条目 会将要打包的路径移动到group节点下
entry.SetLabel("Label", true , false, true);//第一个参数是创建这个标签 第二个是 是否开启标签
AddressableAssetGroupSchema ags = new AddressableAssetGroupSchema();//创建group 条目
}
}
}
}
#endif
代码创建addressables Group
最新推荐文章于 2024-09-06 14:09:36 发布