Version: 2020.3

AssetPostprocessor.OnPostprocessModel(GameObject)

切换到手册

描述

将此函数添加到一个子类中,以在模型完成导入时获取通知。

借助此函数,您可以修改此函数引用的所导入的游戏对象、网格、动画剪辑。请注意,游戏对象、动画剪辑和网格仅在导入期间存在,导入完成后,系统会立即将其销毁。

在创建最终预制件且在将其写入磁盘之前,系统会调用此函数,因此,您可以完全控制生成的游戏对象和组件。

导入完成后,对游戏对象或网格的所有引用都将变为无效。因此,无法 通过在导入的 FBX 文件中引用网格的 OnPostprocessModel 在其他文件中创建新的预制件。

root 是导入模型的根游戏对象。

using UnityEngine;
using UnityEditor;

// Adds a mesh collider to each game object that contains collider in its name public class Example : AssetPostprocessor { void OnPostprocessModel(GameObject g) { Apply(g.transform); }

void Apply(Transform t) { if (t.name.ToLower().Contains("collider")) t.gameObject.AddComponent<MeshCollider>();

// Recurse foreach (Transform child in t) Apply(child); } }