obj | @param obj Объект ассета для запроса. |
instanceID | @param instanceID Инстанция ID объекта ассета для запроса. |
Является ли форма ассета частью другого ассета?
Некоторые ассеты могут быть частью другого ассета (например, процедурный материал может быть частью пакета материала). Эта функция говорит, подчиняется ли ассет такому способу.
using UnityEditor; using UnityEngine; public class Scriptable : ScriptableObject { }
public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/IsSubAssetExample")] static void IsSubAssetExample() { var materialAsset = new Material(Shader.Find("Standard")); //materialAsset is still in memory, therefore this will be False Debug.Log(AssetDatabase.IsSubAsset(materialAsset));
//Create a Scriptable object var scriptableAssetPath = "Assets/ScriptableObjects/NewObject.asset"; var mainAsset = ScriptableObject.CreateInstance<Scriptable>(); AssetDatabase.CreateAsset(mainAsset, scriptableAssetPath);
//Add the Material Asset to the Scriptable object, so that the Material becomes a Sub Asset of the Scriptable object AssetDatabase.AddObjectToAsset(materialAsset, scriptableAssetPath); AssetDatabase.SaveAssets();
//This will be True because the Material asset has been added to the mainAsset and is now a Sub Asset Debug.Log(AssetDatabase.IsSubAsset(materialAsset)); } }