Version: 2021.3

AssetDatabase.AddObjectToAsset

切换到手册
public static void AddObjectToAsset (Object objectToAdd, string path);

参数

objectToAdd 要添加到现有资源的对象。
path 资源的文件系统路径。

描述

objectToAdd 添加到 path 下的现有资源中。

请注意,您只应将资源添加到 '.asset' 资源中,导入模型或纹理资源之类的资源将丢失其数据。

所有路径均是相对于项目文件夹的路径,例如:"Assets/MyTextures/hello.png"。 注意:

您不能添加游戏对象;请改用 PrefabUtility

using UnityEngine;
using UnityEditor;

public class CreateMaterialExample : MonoBehaviour { [MenuItem("GameObject/Create Material")] static void CreateMaterial() { // Create a simple material asset

Material material = new Material(Shader.Find("Specular")); AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");

// Add an animation clip to it AnimationClip animationClip = new AnimationClip(); animationClip.name = "My Clip"; AssetDatabase.AddObjectToAsset(animationClip, material);

// Reimport the asset after adding an object. // Otherwise the change only shows up when saving the project AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));

// Print the path of the created asset Debug.Log(AssetDatabase.GetAssetPath(material)); } }

public static void AddObjectToAsset (Object objectToAdd, Object assetObject);

描述

objectToAdd 添加到由 assetObject 标识的现有资源中。

注意:

您不能添加游戏对象;请改用 PrefabUtility

using UnityEngine;
using UnityEditor;

public class CreateMaterialExample : MonoBehaviour { [MenuItem("GameObject/Create Material")] static void CreateMaterial() { // Create a simple material asset

Material material = new Material(Shader.Find("Specular")); AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");

// Add an animation clip to it AnimationClip animationClip = new AnimationClip(); animationClip.name = "My Clip"; AssetDatabase.AddObjectToAsset(animationClip, material);

// Reimport the asset after adding an object. // Otherwise the change only shows up when saving the project AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));

// Print the path of the created asset Debug.Log(AssetDatabase.GetAssetPath(material)); } }