Add Add mesh collider option to Static Model context menu
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user