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

如何在C#脚本中创建预置变量?,c#,unity3d,C#,Unity3d,我正在试用Unity的新预制工作流。我想在已经创建的预置上以编程方式创建预置变量。我使用的是Unity 2018.3.0b7。如何做到这一点 使用预置实用程序.SaveAsPrefabAsset函数创建预置变量。请注意,您只能在编辑器中创建预置和预置变量,而不能在构建中创建。要创建预制变量,首先必须使用预制实用程序实例化预制。实例化prefab然后可以使用预制实用程序.SaveAsPrefabAsset函数创建变量 从文件加载预制件或获取对原始预制件的引用: GameObject prefabR

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

使用
预置实用程序.SaveAsPrefabAsset
函数创建预置变量。请注意,您只能在编辑器中创建预置和预置变量,而不能在构建中创建。要创建预制变量,首先必须使用
预制实用程序实例化预制。实例化prefab
然后可以使用
预制实用程序.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及以上版本来创建预制变体。

不要只问“如何才能做到这一点”。提出更具体的问题,并张贴您尝试过的代码示例。