динамическое создание префаба
Добавлено: 19 окт 2011, 19:36
Хочется иметь возможность динамически создать GameObject, меш, материалы, повесить меш и материалы на GameObject и сохранить все это в префаб. Можно ли так сделать? Я делаю примерно вот так:
GameObject сохраняется, меш остается пустым. Как сделать правильно?
Синтаксис:
Используется csharp
Mesh new_mesh = new Mesh();
// делаем что-то с мешем
// так же создаем материалы
GameObject new_object = new GameObject("go_name");
if ((MeshFilter)new_object.GetComponent("MeshFilter") == null)
{
new_object.AddComponent("MeshFilter");
}
MeshFilter mesh_filter;
mesh_filter = (MeshFilter)new_object.GetComponent("MeshFilter");
mesh_filter.mesh = new_mesh;
AssetDatabase.CreateAsset(new_mesh, "Assets/_test/" + new_mesh.name + ".asset");
Object prefab = EditorUtility.CreateEmptyPrefab("Assets/_test/" + new_object.name + ".prefab");
EditorUtility.ReplacePrefab(new_object, prefab, ReplacePrefabOptions.ConnectToPrefab);
// делаем что-то с мешем
// так же создаем материалы
GameObject new_object = new GameObject("go_name");
if ((MeshFilter)new_object.GetComponent("MeshFilter") == null)
{
new_object.AddComponent("MeshFilter");
}
MeshFilter mesh_filter;
mesh_filter = (MeshFilter)new_object.GetComponent("MeshFilter");
mesh_filter.mesh = new_mesh;
AssetDatabase.CreateAsset(new_mesh, "Assets/_test/" + new_mesh.name + ".asset");
Object prefab = EditorUtility.CreateEmptyPrefab("Assets/_test/" + new_object.name + ".prefab");
EditorUtility.ReplacePrefab(new_object, prefab, ReplacePrefabOptions.ConnectToPrefab);
GameObject сохраняется, меш остается пустым. Как сделать правильно?