Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 是否可以创建模型导入器,以便可以调整模型预置的网格渲染器上的属性?_Unity3d_Unity5 - Fatal编程技术网

Unity3d 是否可以创建模型导入器,以便可以调整模型预置的网格渲染器上的属性?

Unity3d 是否可以创建模型导入器,以便可以调整模型预置的网格渲染器上的属性?,unity3d,unity5,Unity3d,Unity5,我想为我的模型创建一些默认导入设置,以便在将模型导入编辑器时,我可以在预设级别上修改该模型的接收阴影、运动向量、反射探测、以及网格渲染器子对象的其他字段的值 这可能吗 我更喜欢这样一种解决方案,即修改模型文件的默认导入设置,并且无需创建模型资产文件的重复预置 编辑: 按照公认答案的方向,下面是我为实现预期结果而编写的代码 using UnityEngine; public class DefaultImportSettings : AssetPostprocessor { void O

我想为我的模型创建一些默认导入设置,以便在将模型导入编辑器时,我可以在预设级别上修改该模型的
接收阴影
运动向量
反射探测
、以及
网格渲染器
子对象的其他字段的值

这可能吗

我更喜欢这样一种解决方案,即修改模型文件的默认导入设置,并且无需创建模型资产文件的重复预置

编辑:

按照公认答案的方向,下面是我为实现预期结果而编写的代码

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
        }
    }
}
使用UnityEngine;
公共类DefaultImportSettings:AssetPostprocessor
{
void OnPostprocessModel(GameObject go)//在导入fbx或按其设置上的应用时调用
{
Renderer[]renderers=go.GetComponentsInChildren();
对于(int i=0,iMax=renderers.Length;i
我认为这是可能的,但很难为每个需要导入的模型进行修改。我找到了一些文件:

使用AssetPostprocessor.onPrepreprocessModel()方法获取模型设置,然后使用PrefableUtility.InstancePrefab()使用自己的设置创建Prefable