AssetDatabase.IsMainAsset
Declaration
public static bool IsMainAsset(Object obj);public static bool IsMainAsset(EntityId entityId);Obsolete public static bool IsMainAsset(int instanceID);Параметры
| Параметр | Описание |
|---|---|
| Объект | Объект ассета. |
| entityId | EntityID ассета. |
| instanceID | instanceID ассета. |
Возвращаемое значение
логическое True, если ассет является основным ассетом, false в противном случае.
Описание
Проверяет, является ли ассет основным ассетом в окне Project.
Например, у импортированной модели есть корневой GameObject и несколько мешей и дочерних GameObject в развёрнутом состоянии. Корневой GameObject в этом случае — основной ассет.
using UnityEditor; using UnityEngine;
public class Scriptable : ScriptableObject { }
public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/Is Main Asset Example")] static void IsMainAssetExample() { var materialAsset = new Material(Shader.Find("Standard"));
//materialAsset is still in memory, therefore this will be False Debug.Log(AssetDatabase.IsMainAsset(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 false because material asset has been added to the main Asset and is now a Sub Asset Debug.Log(AssetDatabase.IsMainAsset(materialAsset));
//Remove the subAsset from the Scriptable object and create it as an Asset AssetDatabase.RemoveObjectFromAsset(materialAsset); AssetDatabase.CreateAsset(materialAsset, "Assets/Materials/New Mat0.mat");
//This will be True because the material is now the main Asset Debug.Log(AssetDatabase.IsMainAsset(materialAsset)); } }