虚幻4中用C++代码创建UI控件

该代码段展示了在UnrealEngine中如何加载UserWidget实例并创建Button。首先,通过LoadClass和CreateWidget方法生成UserWidget。然后,通过ConstructButtonWidget函数构建Button,设置其位置、大小、角度,并定义按钮的样式,包括正常、悬停、禁用和按下状态的纹理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.加载UserWidget

void AUserWidgetContainer::CreateUserWidgetInstance(EUserWidget name, const FString path)
{
UClass* widgetClass = LoadClass(nullptr, path.GetCharArray().GetData());
UUserWidget* userWidget = CreateWidget(GetWorld(), widgetClass);
userWidgetMap.Emplace(name, userWidget);
}

2.创建Button


```cpp
void AUserWidgetContainer::ConstructButtonWidget(EUserWidget userWidget, FString widgetName, FVector2D location, FVector2D size, float angle)
{
	UCanvasPanel* canvasPanel = (UCanvasPanel*)userWidgetMap[userWidget]->GetWidgetFromName(TEXT("WidgetName"));
	UButton* widget = userWidgetMap[userWidget]->WidgetTree->ConstructWidget<UButton>(UButton::StaticClass(), FName(*widgetName));
	canvasPanel->AddChild(widget);

	UStructWidget* tempStructure = NewObject<UStructWidget>(GetTransientPackage(), UStructWidget::StaticClass());
	tempStructure->widgetName = widgetName;
	tempStructure->belong = userWidget;

	Cast<UCanvasPanelSlot>(widget->Slot)->SetAlignment(FVector2D(0.5, 0.5));
	Cast<UCanvasPanelSlot>(widget->Slot)->SetPosition(location);
	Cast<UCanvasPanelSlot>(widget->Slot)->SetSize(size);
	widget->SetRenderAngle(angle);
        //设置button样式
	FButtonStyle style;
	FSlateBrush brush;
	brush.SetResourceObject(StaticLoadObject(UTexture2D::StaticClass(), NULL, TEXT("Texture2D'/Game/Textures/texturename'")));
	style.SetNormal(brush);
	style.SetHovered(brush);
	style.SetDisabled(brush);
	style.SetPressed(brush);
	widget->SetStyle(style);
}


Epic Games今天宣布,正式发布“虚幻引擎4”(Unreal Engine 4/UE4),相关所有资源也一并放出。# h9 u6 O( p! y& D) q4 K7 P9 ~# N   只要每个月花19美元,你就能到全部资源,包括拿过来就能用的虚幻编辑器(Unreal Editor),GitHub上的完整C++代码(支持微软Visual Studio/苹果Xcode),还有完整的生态系统:论坛、维基、问答、协作。8 t8 q& _* ?7 K. D) S6 W 一大波新游戏要来了 虚幻4引擎正式发布, s! f+ v' w9 M j3 y: ^   而在虚幻引擎4游戏的销售中,Epic将抽取5%的毛收入提升,也就是你的游戏赚了100万美元,就要交给Epic 5万美元。   回到技术方面,Epic号称虚幻引擎4是他们多年来心血的结晶,而且现在只是第一版,才刚刚开始。C++代码里你可以看到大量的创新,比如说支持虚拟立体偷窥Oculus VR,支持Linux操作系统,以及支持Valve SteamWorks、StreamBox,而且还可以通过HTML5在网页浏览器内开发游戏(页游)。   平台支持PC、PS4、Xbox One、iOS、Google等等。   虚幻引擎4基于DirectX 11,拥有新的材料流水线、蓝图视觉化脚本、直观蓝图调试、内容浏览器、人物动画、Matinee影院级工具集、全新地形和植被、后期处理效果、热重载(Hot Reload)、模拟与沉浸式视角、即时游戏预览、AI人工智能、音频、中间件集成等一系列全新特性。   虚幻引擎4现已开始提供授权。 现在提供网盘下载地址,毕竟到官方下载很麻烦,还要$,呵呵,10分很值得,代码风格很好,注释很爽!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值