美文网首页
Unity 用脚本创建VolumeProfile并保存

Unity 用脚本创建VolumeProfile并保存

作者: 暴走TA | 来源:发表于2020-12-07 17:12 被阅读0次

简介:有时候需要批量处理 Profile 文件,例如自动创建 Profile 文件,然后给其添加指定的后处理效果,然后再设置参数,并保存为文件。特别是项目从 Legacy 的 PostProcessing V2 升级到 URP 的后处理的时候。
在工具开发的过程中发现,简单的 add 是无法将添加的后处理效果保存到 Profile 文件内的。以下为可以正常保存的方法

版本:2019.2

代码预览

//assetPath 为profile文件保存位置
var newVolume = ScriptableObject.CreateInstance<VolumeProfile>(); // 创建profile对象
AssetDatabase.CreateAsset(newVolume, assetPath);//根据对象保存文件
var uBloom = newVolume.Add<UnityEngine.Rendering.Universal.Bloom>();//给profile添加
//指定此对象在文件中的显示模式,这里是在inspector和hierarchy都不显示
uBloom.hideFlags = HideFlags.HideInHierarchy|HideFlags.HideInInspector;
uBloom.active = true;
uBloom.name = "Bloom";//起个名字
AssetDatabase.AddObjectToAsset(uBloom, assetPath);//根据路径将其添加到文件里,!!关键点!!

关键解析

打开debug模式发现,自己用代码添加的效果,显示的 type mismatch,而手动通过界面添加的效果是有一个引用文件的。


代码添加的对象丢失
  • AssetDatabase.AddObjectToAsset(uBloom, assetPath);这一句就是将我们的效果对象添加到Asset文件内


    使用AddObjectToAsset后
  • uBloom.hideFlags = HideFlags.HideInHierarchy|HideFlags.HideInInspector;这一句可以将bloom的实体文件隐藏不显示。


    未隐藏的效果
    使用了标志后隐藏显示

相关文章

网友评论

      本文标题:Unity 用脚本创建VolumeProfile并保存

      本文链接:https://www.haomeiwen.com/subject/wodtgktx.html