Version: 2023.1

AssetPostprocessor.OnPostprocessGameObjectWithUserProperties(GameObject,string[],object[])

切换到手册

描述

为每个在导入文件中至少附加了一个用户属性的游戏对象调用此函数。

第二个参数字符串数组 (propNames) 包含找到的所有属性的名称。 System.Object 数组 (values) 包含所有实际值。参数类型可以是 string、Vector4、bool、Color、float、int。

此功能的典型用例是读取存储在 3dmax/maya 中的对象上的“userdata”。根据在对象的文本 userdata 中写入的内容,您可以决定以不同的方式对游戏对象进行后处理。

有关调用此函数时所在阶段的详细描述,请参阅 AssetPostprocessor

Please note that the GameObjects and Meshes only exist during the import and will be destroyed immediately afterwards. This function is called before the final Prefab is created and before it is written to disk, thus you have full control over the generated game objects and components. Any references to game objects or meshes will become invalid after the import has been completed. Thus it is not possible to create a new Prefab in a different file from OnPostprocessGameObjectWithUserProperties that references meshes in the imported fbx file.

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... } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961