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.
|
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using FlaxEditor.Content;
|
||||||
|
using FlaxEditor.GUI.ContextMenu;
|
||||||
using FlaxEngine;
|
using FlaxEngine;
|
||||||
|
|
||||||
namespace FlaxEditor.SceneGraph.Actors
|
namespace FlaxEditor.SceneGraph.Actors
|
||||||
@@ -16,5 +19,32 @@ namespace FlaxEditor.SceneGraph.Actors
|
|||||||
: base(actor)
|
: 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