☰
41,从UE5.1迁移到UE5.8排坑全记录
2026/10/3 12:51:15 网站建设 项目流程

作为一个古法编程爱好者,决定与时俱进,用AI进行UE5的那个肉鸽,毕竟不是研究,只是工程,甚至小demo,那就流水线吧,把主要精力用在有深度的知识的研究上,

看到大家说AI只能用5.8版本,好吧,那就开干。
原以为移植很简单,转成5.8,generate后,.sln很快出来,原以为不过如此。结果出现一个错误,不知所云。
双击RoughLike1.uproject,
直接弹出对话框,显示错误内容
The last build used an outdated BuildSettingsVersion, or the target still requires upgrading.
Please upgrade RoughLike1Editor.Target.cs:
Update the build settings version (Installed Engine Build & Source Build):
DefaultBuildSettings = BuildSettingsVersion.V7;
OR
Declare a unique build environment (Source Build only):
BuildEnvironment = TargetBuildEnvironment.Unique;
If you have already updated the target, would you like to rebuild & open the project?

那就把这两个.target.cs改为DefaultBuildSettings = BuildSettingsVersion.V7;

不过是配置问题,应该的。
现在应该可以了吧,结果
只有血量条,玩家呢?

按下~,双击bp_player0,发现能看到,说明paperzd插件没问题。

不放心,又查了下插件,果然没问题。

那就可能是摄像机的问题。

比如说,osg中camera可以addchild()不同的物体,谁说要加载场景中所有的物体呢?那么类推,UE应该也类似,那camera有问题?

添个灯光和几个圆锥体试试,果然运行后也看不到了

虱子多了不痒,一个个解决吧,先改下花屏问题,改成DX11

既然摄像机有问题,那就试试cameraActor,拖拽到场景,果然能看到

那就用CameraActor替代弹簧臂和摄像机组件。

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true")) TObjectPtr<ACameraActor> ViewCamera;

void AMyPaperZDCharacter::BeginPlay()
{
Super::BeginPlay();

APlayerController* playerController = Cast<APlayerController>(Controller); ULocalPlayer* localPlayer = playerController->GetLocalPlayer(); UEnhancedInputLocalPlayerSubsystem* subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(localPlayer); subsystem->AddMappingContext(DefaultMappingContext, 0); FActorSpawnParameters SpawnParams; ViewCamera = GetWorld()->SpawnActor<ACameraActor>(FVector::ZeroVector, FRotator::ZeroRotator, SpawnParams); if (ViewCamera) { ViewCamera->GetCameraComponent()->SetProjectionMode(ECameraProjectionMode::Orthographic); ViewCamera->GetCameraComponent()->SetAspectRatio(0.0f); ViewCamera->GetCameraComponent()->SetConstraintAspectRatio(false); ViewCamera->GetCameraComponent()->SetOrthoWidth(2048); ViewCamera->AttachToActor(this, FAttachmentTransformRules::KeepRelativeTransform); ViewCamera->SetActorRelativeLocation(FVector(0, 0, 1000)); FVector2D ViewportSize; GEngine->GameViewport->GetViewportSize(ViewportSize); if (ViewportSize.Y > 0) { float TargetOrthoHeight = 1152.0f; // 你希望在纵向上看到的像素高度(自行微调) float NewOrthoWidth = TargetOrthoHeight * (ViewportSize.X / ViewportSize.Y); ViewCamera->GetCameraComponent()->SetOrthoWidth(NewOrthoWidth); } // 【重点】蓝图 X/Y/Z → 转成 C++ 旋转 // 蓝图 X = Roll // 蓝图 Y = Pitch // 蓝图 Z = Yaw // C++ FRotator( Pitch, Yaw, Roll ) // 所以 → FRotator( 蓝图Y, 蓝图Z, 蓝图X ) double roll = 0; double pitch = -90.0; double yaw = -90.0; ViewCamera->SetActorRelativeRotation(FRotator(pitch, yaw, roll)); playerController->SetViewTarget(ViewCamera); } 摄像机果然OK了![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1470e5fd7ce54cee86c05146379100d6.png)

但是画面乱七八糟了,
这下懵逼了,是zfighting还是材质?
查看了下地图

原来是材质问题

把 Masked 改为 Translucent,ok了

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询