为每个在导入文件中至少附加了一个用户属性的游戏对象调用此函数。
第二个参数字符串数组 (propNames) 包含找到的所有属性的名称。
System.Object 数组 (values) 包含所有实际值。参数类型可以是 string、Vector4、bool、Color、float、int。
此功能的典型用例是读取存储在 3dmax/maya 中的对象上的“userdata”。根据在对象的文本 userdata 中写入的内容,您可以决定以不同的方式对游戏对象进行后处理。
有关调用此函数时所在阶段的详细描述,请参阅 AssetPostprocessor。
请注意,游戏对象和网格仅在导入期间存在,导入完成后,系统会立即将其销毁。
在创建最终预制件且在将其写入磁盘之前,系统会调用此函数,因此,您可以完全控制生成的游戏对象和组件。
导入完成后,对游戏对象或网格的所有引用都将变为无效。因此,无法通过在导入的 FBX 文件中引用网格的 OnPostprocessGameObjectWithUserProperties 在其他文件中创建新的预制件。
如果 userdata 字符串包含“addboxcollider”,下面的 JS 示例将添加一个简单的 BoxCollider 组件。c# 版本与之类似。
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... } } }
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.