如何在C#脚本中创建预制变量?

时间:2018-11-01 05:11:54

标签: c# unity3d

我正在尝试Unity的新预制工作流程。我想以编程方式在已经创建的预制件上创建预制件变体。我正在使用Unity 2018.3.0b7。如何才能做到这一点?

1 个答案:

答案 0 :(得分:1)

PrefabUtility.SaveAsPrefabAsset函数用于创建预制变量。请注意,您只能在编辑器中而不是在内部版本中创建预制件和预制件变体。要创建预制变量,首先必须使用PrefabUtility.InstantiatePrefab实例化预制变量,然后可以使用PrefabUtility.SaveAsPrefabAsset函数来创建变量。

从文件中加载预制件或获取原始预制件的引用:

GameObject prefabRef 
 = (GameObject)AssetDatabase.LoadMainAssetAtPath("Assets/Prefabs/YourPrefabName.prefab");

以编辑器方式实例化预制件

GameObject instanceRoot = (GameObject)PrefabUtility.InstantiatePrefab(prefabRef);

创建预制变体

GameObject pVariant = PrefabUtility.SaveAsPrefabAsset(instanceRoot, "Assets/Prefabs/PrefabOutputName.prefab");

清理实例化对象

GameObject.DestroyImmediate(instanceRoot);

注意:

您需要 Unity 2018.3b 及更高版本才能创建预制版本。