Add Add mesh collider option to Static Model context menu

This commit is contained in:
Wojtek Figat
2021-02-18 11:12:09 +01:00
parent 96846ea255
commit 9ee6104706

View File

@@ -1,5 +1,8 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
using System;
using FlaxEditor.Content;
using FlaxEditor.GUI.ContextMenu;
using FlaxEngine;
namespace FlaxEditor.SceneGraph.Actors
@@ -16,5 +19,32 @@ namespace FlaxEditor.SceneGraph.Actors
: base(actor)
{
}
/// <inheritdoc />
public override void OnContextMenu(ContextMenu contextMenu)
{
base.OnContextMenu(contextMenu);
contextMenu.AddButton("Add mesh collider", OnAddMeshCollider).Enabled = ((StaticModel)Actor).Model != null;
}
private void OnAddMeshCollider()
{
var model = ((StaticModel)Actor).Model;
if (!model)
return;
Action<CollisionData> created = collisionData =>
{
var actor = new MeshCollider
{
StaticFlags = Actor.StaticFlags,
Transform = Actor.Transform,
CollisionData = collisionData,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
};
var collisionDataProxy = (CollisionDataProxy)Editor.Instance.ContentDatabase.GetProxy<CollisionData>();
collisionDataProxy.CreateCollisionDataFromModel(model, created);
}
}
}