1.0 UE4C++工程代码迁移,遇到蓝图子类无法继承C++父类问题
Config/DefaultEngine.ini 文件中添加
[/Script/Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="/Script/OldGame",NewGameName="/Script/NewGame")+ActiveGameNameRedirects=(OldGameName="OldGame",NewGameName="NewGame")
2.0 FLatentActionInfo 参数设置
Linkage设为1(随意,应该是不为0就行,自己可以试一下)
UUID:222(随意,不要有两个UUID一样的同类型FLatentActionInfo对象同时存在就OK)
CallbackTarget,ExecutionFunction,这两个参数比较类似委托里面的BindUFunction,
切记,绑定的函数必须加UFUNCTION()宏,通过UE内部的反射机制生成对应的函数名字,
3.0 屏幕坐标转世界坐标的坑
推荐写法:
APlayerController*PC = UGameplayStatics::GetPlayerController(this, 0);
FVector2D mousePosition = UWidgetLayoutLibrary::GetMousePositionOnViewport(this);
float viewportScale = UWidgetLayoutLibrary::GetViewportScale(this);
UGameplayStatics::DeprojectScreenToWorld(PC, mousePosition*viewportScale, worldPosition, worldDirection);
不建议写法:这种写法在鼠标点击按钮的时候,导致focus丢失而出问题
APlayerController*PC = UGameplayStatics::GetPlayerController(this, 0);
PC->GetMousePosition(mouseX, mouseY);