Adding "Generate collision data" from Model context menu.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2012-2020 Wojciech Figat. All rights reserved.
|
||||
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using FlaxEditor.Windows;
|
||||
using FlaxEditor.Windows.Assets;
|
||||
using FlaxEngine;
|
||||
@@ -40,5 +41,29 @@ namespace FlaxEditor.Content
|
||||
if (Editor.CreateAsset(Editor.NewAssetType.CollisionData, outputPath))
|
||||
throw new Exception("Failed to create new asset.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create collision data from model.
|
||||
/// </summary>
|
||||
/// <param name="model">The associated model.</param>
|
||||
public void CreateCollisionDataFromModel(Model model)
|
||||
{
|
||||
Action<ContentItem> created = contentItem =>
|
||||
{
|
||||
var ai = (AssetItem)contentItem;
|
||||
var cd = FlaxEngine.Content.LoadAsync<CollisionData>(ai.ID);
|
||||
if (cd == null || cd.WaitForLoaded())
|
||||
{
|
||||
Editor.LogError("Failed to load created collision data.");
|
||||
return;
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
Editor.CookMeshCollision(ai.Path, CollisionDataType.TriangleMesh, model);
|
||||
});
|
||||
};
|
||||
Editor.Instance.Windows.ContentWin.NewItem(this, null, created);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user