// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved. using System; using FlaxEditor.Content; using FlaxEditor.GUI.ContextMenu; using FlaxEngine; namespace FlaxEditor.SceneGraph.Actors { /// /// Scene tree node for actor type. /// /// [HideInEditor] public sealed class StaticModelNode : ActorNode { /// public StaticModelNode(Actor actor) : base(actor) { } /// 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 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(); collisionDataProxy.CreateCollisionDataFromModel(model, created); } } }