Unreal4 关卡编辑器

一、关卡编辑器

 

 

二、Slate

1、游戏使用 Slate,模块依赖。

修改 [ProjectName].build.cs

PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

 

2、显示控件

传入一个存储在成员变量中的控件引用(作为 TSharedPtr ):

GEngine->GameViewport->AddViewportWidgetContent(

    SNew(MyWidgetPtr.ToSharedRef())

);

 

当将控件传入到 GameViewportClient::AddViewportWidgetContent() 时使用 SNew() 创建该控件:

GEngine->GameViewport->AddViewportWidgetContent(

    SNew(SWeakWidget)

    .PossiblyNullContent(MyWidgetClass)

);

 

或者使用 SAssignNew() 来创建控件,并将它分配给 TSharedPtr 成员,然后传入它:

GEngine->GameViewport->AddViewportWidgetContent(

    SAssingNew(MyWidgetPtr, SWeakWidget)

    .PossiblyNullContent(MyWidgetClass)

);

 

 

3、从视口中删除控件

通过向 GameViewportClient::RemoveViewportWidgetContent() 中传入到先前添加的控件的引用, 可以从视口中单独地删除Slate控件。

 

GEngine->GameViewport->RemoveViewportWidgetContent(

    SNew(MyWidgetPtr.ToSharedRef())

);

 

另外,通过调用 GameViewportClient::RemoveAllViewportWidgets() 可以立即删除所有控件。

 

三、底层方法

1、template< class ObjectType, ESPMode Mode> class TSharedRef

{

};

 

posted @ 2017-08-11 10:16  落叶书灯  阅读(616)  评论(0编辑  收藏  举报