版本: Unity 6 (6000.0)
语言英语
  • C#

AssetDatabase.IsSubAsset

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static bool IsSubAsset(Object obj);

声明

public static bool IsSubAsset(int instanceID);

参数

obj 要查询的资产对象。
instanceID 要查询的资产对象的实例 ID。

描述

该资产是否构成另一个资产的一部分?

某些资产可能构成另一个资产的一部分(例如,程序化材质可以是材质包的一部分)。此函数指示资产是否以这种方式从属于另一个资产。

using UnityEditor;
using UnityEngine;
public class Scriptable : ScriptableObject
{
}

public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/Is Sub Asset Example")] 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)); } }