Add Create collision data action to be performed for each model selected in the Content Window

This commit is contained in:
Wojtek Figat
2023-04-17 12:20:02 +02:00
parent 71b5b528fd
commit 2eea7abc27
3 changed files with 87 additions and 30 deletions

View File

@@ -47,9 +47,23 @@ namespace FlaxEditor.Content
menu.AddButton("Create collision data", () =>
{
var model = FlaxEngine.Content.LoadAsync<Model>(((ModelItem)item).ID);
var collisionDataProxy = (CollisionDataProxy)Editor.Instance.ContentDatabase.GetProxy<CollisionData>();
collisionDataProxy.CreateCollisionDataFromModel(model);
var selection = Editor.Instance.Windows.ContentWin.View.Selection;
if (selection.Count > 1)
{
// Batch action
var items = selection.ToArray(); // Clone to prevent issue when iterating over and content window changes the selection
foreach (var contentItem in items)
{
if (contentItem is ModelItem modelItem)
collisionDataProxy.CreateCollisionDataFromModel(FlaxEngine.Content.LoadAsync<Model>(modelItem.ID), null, false);
}
}
else
{
var model = FlaxEngine.Content.LoadAsync<Model>(((ModelItem)item).ID);
collisionDataProxy.CreateCollisionDataFromModel(model);
}
});
}