使用预设从场景中的游戏对象创建预设.创建预设
本文关键字:创建 游戏 对象 | 更新日期: 2023-09-27 18:01:15
我在场景中有一个游戏对象,它有子对象和组件。我想把它保存为一个预制,然后用c#脚本删除游戏对象。我有一个处理这种情况的基本脚本:
GameObject gObject = Gameobject.Find(name);
if (gObject != null)
{
PrefabUtility.CreatePrefab("Assets/Models/" + data + ".prefab", gObject, ReplacePrefabOptions.Default);
Destroy(gObject);
}
此代码运行良好。但仅在创建预制件时保存变换零部件。CreatePremab操作后,游戏对象的网格信息丢失。有没有一种方法可以创建一个包含游戏对象所有组件的预制件?
您需要专门将网格保存在预制件中。
Object prefab = PrefabUtility.CreatePrefab(...
AssetDatabase.AddObjectToAsset(yourMesh, prefab);
Destroy(gObject);
如果有多个网格,则需要将每个网格分别添加到ObjectToAsset。
回复:您的评论:没有必要在构建中具有此功能。你可以在运行时创建一个GameObject,其中包含你想要的所有组件和网格,然后像使用预制一样使用实例化来克隆它。