今天想把AssetDatabase创建的资源标记成可寻址资源,网上一顿找教程,根据教程尝试后无果。自己的各种参数设置尝试无果。最后各种查找最后看到上面有日文注释的代码,里面对于Addressable的操作比较全面
上代码
//创建资源实例
excelAsset = ScriptableObject.CreateInstance(typeSO);
//本地资源文件
AssetDatabase.CreateAsset(excelAsset, assetPath);
//AddressableAssetEntry addressableEntry = addressableSettings.CreateOrMoveEntry(AssetDatabase.GetAssetPath(excelAsset), addressableSettings.DefaultGroup);
//获取addressable配置文件
AddressableAssetSettings addressableSettings = AddressableAssetSettingsDefaultObject.Settings;
//获取配置中“Custom”的组的资源
AddressableAssetGroup customGroup = addressableSettings.FindGroup("Custom");
//获取资源的guiId
string guiId = AssetDatabase.AssetPathToGUID(assetPath);
//根据guiId移动或创建资源到customGroup中
AddressableAssetEntry addressableEntry = addressableSettings.CreateOrMoveEntry(guiId, customGroup);
//设置资源的寻址配置
addressableEntry.address = "456";
//设置资源的标签,标签必须已创建才有效
addressableEntry.SetLabel("123",true);
//脏刷新
EditorUtility.SetDirty(addressableSettings);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
设置后的配置面板信息
在这里插入图片描述
总结:
//正确的
string guiId = AssetDatabase.AssetPathToGUID(assetPath)
//错误的
string guiId = AssetDatabase.GetAssetPath(excelAsset);
被相关文献坑惨了,虽然正确的guiId 配置后,配置面板上面的path信息就是AssetDatabase.GetAssetPath(excelAsset)生成的路径,但是,这根本就行不通。
我一直搜索怎么脚本实现勾选可寻址的复选框,无果。其实当把资源添正确加到组时,就自动勾选上了。
一个问题没有答案的时候,可能刚开始就走偏了。