Описание
Удаляет объект из его актива (Смотрите так же: AssetDatabase.AddObjectToAsset).
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class Scriptable : ScriptableObject
{
}
public class AssetDatabaseExamples : MonoBehaviour
{
[MenuItem("AssetDatabase/Remove Object From Asset Example")]
public static void RemoveObjectFromAssetExample()
{
var scriptableObjectList = new List();
//Создать объекты для сценариев и сохранить их в списке
for (var i = 0; i < 10; i++)
{
scriptableObjectList.Add(ScriptableObject.CreateInstance());
AssetDatabase.CreateAsset(scriptableObjectList[i], $"Assets/ScriptableObjects/SO{i}.asset");
}
//Добавить материалы в качестве подактивов к объектам, доступным для сценариев
foreach (var so in scriptableObjectList)
{
AssetDatabase.AddObjectToAsset(new Material(Shader.Find("Standard")), so);
}
AssetDatabase.SaveAssets();
//Удаление материалов из их объектов, доступных для сценариев
foreach (var so in scriptableObjectList)
{
var material =
AssetDatabase.LoadAssetAtPath(AssetDatabase.GetAssetPath(so), typeof(Material));
AssetDatabase.RemoveObjectFromAsset(material);
}
AssetDatabase.SaveAssets();
}
}