我正在尝试 Unity 的新预制工作流程。我想以编程方式在我已经创建的预制件上创建预制件变体。我正在使用 Unity 2018.3.0b7。如何才能做到这一点?
最佳答案
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 及更高版本才能创建预制变体。
关于c# - 如何在 C# 脚本中创建预制变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53095501/