转贴:UE4 代码总结
来源:互联网 发布:文泰2009端口设置 编辑:程序博客网 时间:2024/06/06 00:32
1.创建关卡类
1.创建C++类继承LevelScriptActor
2.打开关卡蓝图 Class Settings->Parent Class 选择你之前创建好的C++类
遇到的问题:
1.Tick()不运行 解决方法:BeginPlay() 增加Super::BeginPlay();
2.在主关卡类里面创建UMG
1.创建C++类继承UUserWidget,例如:UMyUserWidget;
2.获取PlayerController,方法:GetWorld()->GetFirstPlayerController();
3.获取UMG蓝图,方法:UClass* widget = LoadClass<UUserWidget>(nullptr,TEXT("/Game/文件名.文件名_C"));
4.在关卡里面创建UMG,方法:UMyUserWidget* mainUMG = CreateWidget<UMyUserWidget>(GetWorld()->GetFirstPlayerController(),widget); mainUMG->AddToViewport();
遇到问题:
1.路径名一定要加_C;
2.AddToViewport(参数);参数可以调整UMG之间的层级
3.UMG里面控件的使用
1.获取最外层界面控件,方法:UPanelWidget *RootWidget = Cast<UPanelWidget>(GetRootWidget());
2.获取里面的控件,方法:Utype* t= (Utype*)GetWidgetFromName(TEXT("控件在UMG蓝图里面的名字"));例如:UButton *btn = (UButton*)GetWidgetFromName(TEXT("Button"));
3.点击事件,方法:btn->OnClicked.AddDynamic(this, &UMyUserWidget::OnClickButton);
4.获取UMG里面动画,方法:(有点复杂,暂时没有找到好的方法)
UProperty *porp = GetClass()->PropertyLink;
UObjectProperty *objectProp = Cast<UObjectProperty>(porp);
UObject *object = objectProp->GetObjectPropertyValue_InContainer(this);
UWidgetAnimation* anim = Cast<UWidgetAnimation>(object);
播放:PlayAnimation(anim);
遇到的问题:
1.OnClickButton方法在头文件里面一定要加 UFUNCTION()
4.在主关卡里面增加输入事件(Input)
1.激活输入事件,InputComponent组件已继承,方法:EnableInput(GetWorld()->GetFirstPlayerController());
2.绑定方法,方法:InputComponent->BindAxis("MoveForward", this, &ALevelScript::方法名);其方法参数为float;
3.点击屏幕的回调,方法:InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &ALevelScript::方法名);方法参数:const ETouchIndex::Type FingerIndex, const FVector Location
5.委托使用
1.声明一个委托,方法:在头文件里面增加DECLARE_DELEGATE_OneParam(FOnSend,const FString&);这个是代参数的,有多个选择看看自己需求
2.在头文件定义一个委托,方法:FOnSend onSend;
3.绑定方法,方法:BindUFuntion,BindUObject
4.Lambda方式处理,方法:class->onSend.BindLambda([&](const FString& str){需要执行的方法或处理});
5.发送方式,方法:OnSend.ExecuteIfBound(参数);
6.定时器
FTimerHandle timerHandler;
GetWorldTimerManager().SetTimer(timerHandler,this,&class::Funtion,0.0001F,true);
7.C++调用蓝图
1.创建C++类并增加一个函数,在函数上面增加UFUNCTION(BlueprintImplementableEvent, Category = "Test")
2.在蓝图类Functions里面找到函数名重载一下
8.蓝图调用C++类
1.创建C++类并增加一个函数,在函数上面增加UFUNCTION(BlueprintCallable, Category = "Test")
2.直接搜索函数名,在Test下面
- 转贴:UE4 代码总结
- UE4 代码总结
- ue4 网络代码分析
- ue4 网络代码分析
- UE4网络代码分析
- ue4 代码入门
- UE4 Login相关代码
- UE4 技巧总结
- [UE4]方法标签(总结)
- [UE4]属性标签(总结)
- UE4动作流程总结
- UE4踩坑总结
- ue4总结一
- [UE4教程] UE4蓝图总结(入门)
- UE4初探及问题总结
- UE4的AI c++代码初始化
- UE4代码文件结构的正确配置
- UE4中蓝图转换成C++代码
- Enable Fielddata On Text Fields
- windows设置网卡成100M b/s
- Webpack安装、配置、按需加载
- Android各种学习资料(Rxjava、动画、UI效果、开源库、算法、面试)资源链接
- 针对使用SharedPreferences来保存数据令列表中checkbox所造成的混乱状态
- 转贴:UE4 代码总结
- 使用1,2,3...代表星期,获取满足限定条件的下一个星期对应的日期
- C#excel导入导出
- 莫队——Luogu3709 大爷的字符串题
- MySQL之——表数据文件损坏导致数据库无法启动
- leetcode[Container With Most Water]
- HDU
- PL/SQL Developer部分使用技巧
- kibana5.4 安装