untiy 预定义导入资源的属性

对于大型项目,可能需要统一设置同一种类型资源的导入,而不需要每导入一个资源就设置一遍,比如texture,默认的材质是一种设置, Lightmap材质是另外一种设置

The TexturesDefault and TexturesLighting folders each have a Preset

  TexturesDefault and TexturesLighting 文件夹各有一个预设置

下面的脚本根据您导入asset的文件夹应用一个preset。如果文件夹中没有预置,此脚本将搜索父文件夹。如果在父文件夹中没有预设,Unity使用预设窗口指定的默认预设。

using System.IO;
using UnityEditor;
using UnityEditor.Presets;

public class PresetImportPerFolder : AssetPostprocessor
{

    void OnPreprocessAsset()
    {
        // Make sure we are applying presets the first time an asset is imported.
        //当该资源导入且没有meta文件
        if (assetImporter.importSettingsMissing)
        {
            // Get the current imported asset folder.
            //得到资源导入的文件夹名字
            var path = Path.GetDirectoryName(assetPath);
           
            if(!string.IsNullOrEmpty(path))
            {
                // Find all Preset assets in this folder.
                // 找到该路径下所有的preset,并返回他们的guid
                var presetGuids = AssetDatabase.FindAssets("t:Preset", new[] { path });
                foreach (var presetGuid in presetGuids)
                {
                    // Make sure we are not testing Presets in a subfolder.
                    //得到他们的路径
                    string presetPath = AssetDatabase.GUIDToAssetPath(presetGuid);
                    //如果preset的路径所在的文件夹和资源导入的文件夹一样,也就是它俩在同一个文件夹下
                    if (Path.GetDirectoryName(presetPath) == path)
                    {
                        // Load the Preset and try to apply it to the importer.
                        //加载得到这个preset
                        var preset = AssetDatabase.LoadAssetAtPath<Preset>(presetPath);
                        //把预设应用到导入的资源上
                        if (preset.ApplyTo(assetImporter))
                            return;
                    }
                }
            }
        }
    }
}

AssetDatabasehttps://docs.unity3d.com/ScriptReference/AssetDatabase.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TO_ZRG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值