UE4 Tutorial HUD (抬头显示) C++

@vrqq  December 1, 2015
测试版本 Unreal Engine 4.9及以上
这部分需要 "Tutorial UE基础" 有空再写这部分

快速上手这个HUD其实是不难的,参照这个牛逼的样例
https://wiki.unrealengine.com/HUD,_Canvas,_Code_Sample_of_800%2B_Lines,_Create_Buttons_%26_Draw_Materials

善用wiki的搜索,这个网站国内可能会慢,我挂了shadowsocks速度还好吧
好了我们来写一个快速上手版。

1、新建一个C++类,选HUD(抬头显示),比如起名叫MyHUDtest

//MyHUDtest.h文件
class MYPROJECT_API AMyHUDtest : public AHUD
{
    virtual void DrawHUD() override;
}

然后只需要在DrawHUD()里面实现绘图就可以了,参照文中头部给的链接,写的很明确了,下面给个例子。

//MyHUDtest.cpp文件
void AMyHUDtest::DrawHUD()
{
  Super::DrawHUD();
  //Draw Rectangle
  FCanvasTileItem RectangleItem( 
    FVector2D(0,0),//Start Point.屏幕左上角.
    FVector2D(200,100),//Width, Height.
    FLinearColor(0, 0, 1, 0.2)// Color
  );
  RectangleItem.BlendMode = SE_BLEND_Translucent; //混合模式
  Canvas->DrawItem(RectangleItem); //Canvas指针用来画画。
}

2、使用BluePrint(蓝图)创建一个GameMode
至于为什么用blueprint创建,因为这部分的class不会手写。。而且这一期重点在HUD类,因此GameMode随意了。
参考了许多手写GameMode Class的例子,都莫名其妙的编译失败了,索性搁置它。。
给它起个名字叫bp_GameMode

3、将当前level(关卡)的GameMode指定为bp_GameMode。
这里注意,整个游戏的逻辑里面有 世界GameModelevel的GameMode ,level会覆盖世界的。

4、使用“蓝图编辑器”BluePrint Editor 打开刚刚随便造的bp_GameMode。
然后看到指定HUD的地方了吧,选刚刚写好的MyHUDtest

5、点“保存所有”,随手存盘好习惯
在Mac下慎用输入法,我用的百度输入法,各种不小心打了字然后程序崩溃掉。

最后的结果是能在角落看到一个淡蓝色半透明的框框
6631281070956957978.jpg
那个就是刚才画的个100*200的HUD,发现就悬在那儿。。


添加新评论