对于在导入的文件中至少附加了一个用户属性的每个 GameObject,都会调用此函数。
第二个参数字符串数组 (propNames) 包含找到的所有属性的名称。System.Object 数组 (values) 包含所有实际值。这些值可以是字符串、Vector4、布尔值、颜色、浮点数、整数类型。
此功能的典型用例是从 3dmax/maya 中对象的“用户数据”中读取数据。根据对象文本用户数据中写入的内容,您可以决定以不同的方式后处理您的 GameObject。
有关调用该函数的阶段的详细说明,请参阅AssetPostprocessor。
请注意,GameObject 和网格仅在导入期间存在,并且会在之后立即销毁。此函数在创建最终预制件之前以及将其写入磁盘之前被调用,因此您可以完全控制生成的博弈对象和组件。在导入完成后,对博弈对象或网格的任何引用都将失效。因此,无法在 OnPostprocessGameObjectWithUserProperties 中从不同的文件中创建引用导入的 fbx 文件中网格的新预制件。
using UnityEngine; using UnityEditor; using System; using System.Collections;
public class ExampleClass : AssetPostprocessor { void OnPostprocessGameObjectWithUserProperties( GameObject go, string[] propNames, System.Object[] values) { for (int i = 0; i < propNames.Length; i++) { string propName = propNames[i]; System.Object value = (System.Object)values[i];
Debug.Log("Propname: " + propName + " value: " + values[i]);
if (value.GetType().ToString() == "System.Int32") { int myInt = (int)value; // do something useful }
// etc... } } }