(原) Unreal 自定义编辑器 - 编辑器模式-启


@author: 白袍小道

 随缘查看

 

前言:

这里接着上文来说,编辑器的另外一条------编辑器模式。(若需要查看引擎层该部分过程,可以迁移到Unreal搬山)

 

正文:

        1、实现图

         

        a)说明

BaiPaoXDEditorCheck_EditorMode

 

模块

主要方法:

StartupModule:    可以在这里将模式注册      

+FEditorModeRegistry::Get().RegisterMode

 

ShutdownModule:    可以在这里将模式注销

+FEditorModeRegistry::Get().UnregisterMode

BaiPaoXDEditorCheck_EditorModeEdMode

 

模块模式

主要方法:

virtual void Enter() override;               //进入【例子中可以在这里构造工具且启动

virtual void Exit() override;                  //退出

 

virtual void Tick(FEditorViewportClient* ViewportClient, float DeltaTime) override  

 

virtual void Render(const FSceneView* View, FViewport* Viewport, FPrimitiveDrawInterface* PDI) override;

 

virtual void ActorSelectionChangeNotify() override;

BaiPaoXDEditorCheck_EditorModeEdModeToolkit

 

模式工具,基本上可以在这里做事情,当然也可以做多个

主要方法:

/** FModeToolkit interface */

virtual void Init(const TSharedPtr<IToolkitHost>& InitToolkitHost) override;

 

/** IToolkit interface */

virtual FName GetToolkitFName() const override;

virtual FText GetBaseToolkitName() const override;

virtual class FEdMode* GetEditorMode() const override;

virtual TSharedPtr<class SWidget> GetInlineContent() const override { return ToolkitWidget; }

 

属性

TSharedPtr<SWidget> ToolkitWidget;

  

           主要实现部分:

          

        2、需求和实现

              可以对选中的Actor 整体位置做随机偏移[范围定义],并能撤销

              第一步:布局和结构

 

               

 

    SVerticalBox::Slot()   :  竖排

    

 

    AutoHeight:自动匹配高度

    HALign:横向布局,  VAlign:纵向。      

     Padding(50):分割   

     Locals::MakeButton:   一个返回SButton的自定义方法,

 

    第二步:实现逻辑

     

    

    注意一下:.IsEnabled_Static(&Locals::IsWidgetEnabled)【可以是否灰掉】

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM