我正在尝试Unity的新预制工作流程。我想以编程方式在已经创建的预制件上创建预制件变体。我正在使用Unity 2018.3.0b7。如何才能做到这一点?
答案 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 及更高版本才能创建预制版本。