是否可以创建一个模型进口商,以便可以调整模型预制器的Meshrender上的属性



我想为我的模型创建一些默认的导入设置,以便当将模型导入到编辑器中时,我可以修改Receive ShadowsMotion VectorsReflection Probes和其他字段的值 MeshRenderer该模型的孩子在预制级别上。

这是可能的吗?

我更喜欢一种解决方案,以便修改模型文件的默认导入设置,并且我没有必要创建模型资产文件的重复预制。

编辑:

沿着接受的答案的方向走,这是我提出的代码以实现所需的结果。

using UnityEngine;
public class DefaultImportSettings : AssetPostprocessor
{
    void OnPostprocessModel(GameObject go) //Is called when we import a fbx or when we press apply on its settings
    {
        Renderer[] renderers = go.GetComponentsInChildren<Renderer>();
        for (int i = 0, iMax = renderers.Length; i < iMax; i++)
        {
            Renderer renderer = renderers[i];
            renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            renderer.receiveShadows = false;
            renderer.motionVectorGenerationMode = MotionVectorGenerationMode.ForceNoMotion;
            renderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off;
            renderer.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off;
            // Other renderer modifications
        }
    }
}

我认为可能是可能的,但是对于需要导入的每个模型很难修改。我找到了一些文件:https://docs.unity3d.com/scriptreference/prefabutility.instantiateprefab.html

https://docs.unity3d.com/scriptreference/assetpostprocessor.onpreprocessmodel.html

AssetPostProcessor.onpreProcessModel()获取模型设置的方法,然后使用Prefabutility.instantiateprefab()创建具有自己设置的Prefab。

最新更新