Version: 2020.2
public static void CreateAsset (Object asset, string path);

参数

asset 创建资源所使用的对象。
path 新资源的文件系统路径。

描述

在此路径下创建一个新资源。

您必须确保路径使用的是支持的扩展名(材质是 '.mat'、立方体贴图是 '.cubemap'、 皮肤是 '.GUISkin'、动画是 '.anim'、其他任意资源是 '.asset')。

您可以在创建资源后,使用 AssetDatabase.AddObjectToAsset 向文件添加更多资源。 如果 path 下已存在资源,那么在创建新资源前需将其删除。 所有路径均是相对于项目文件夹的路径,例如:“Assets/MyStuff/hello.mat”。

请注意,如果向资源添加多个对象,添加对象的顺序并不重要。 换言之,asset 在资源中并不具有特殊性也不会是之后所添加对象的任何形式的 "root" 。在项目视图中显示为资源主要对象的对象是 对象集合中被视为最重要的对象(具有由类型决定)。

注意:

您不能从游戏对象创建资源,请改用 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");

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