UE4编程遇到的问题及解决方法

UE4编程遇到的问题及解决方法

注:本文环境基于UE4.23.1和VS2019

1、添加头文件后,GENERATED_BODY()报错

解决办法:

  • 检查添加的头文件是否在 filename.generated.h 这个头文件的后面,如果是,把添加的头文件移到filename.generated.h 这个头文件的前面。
#include "GameFramework/SpringArmComponent.h"
#include "CoreMinimal.h"
#include "GameFramework/Pawn.h"
#include "PawnWithCamera.generated.h" //这个必须得在最后
  • 记住UCLASS()和GENERATED_BODY()各自所在的行,然后按住Ctril后,点击filename.generated.h这个头文件
  • 将头文件中的h_12改为自己GENERATED_BODY()对应的行数,h_9改为UCLASS()对应的行数

例子:

//MyPawn.h
11 UCLASS()
12 class HOWTO_VTE_API AMyPawn : public APawn
13 {
14  	GENERATED_BODY()
15 }

//MyPawn.generated.h
... //(太多了,此处省略,省略处也有要修改的)
#define HowTo_VTE_Source_HowTo_VTE_MyPawn_h_14_PRIVATE_PROPERTY_OFFSET
#define HowTo_VTE_Source_HowTo_VTE_MyPawna_h_11_PROLOG
#define HowTo_VTE_Source_HowTo_VTE_MyPawna_h_14_GENERATED_BODY_LEGACY \
...//(太多了,此处省略,省略处也有要修改的)

若 filename.generated.h 文件找不到,可以下载Everything这个软件,将文件名粘贴到Everything中,即可查找到。

官方文档中,不建议在前面加头文件,需要引入一个类时,可以使用以下方法

class USkeletalMeshComponent* Mesh1P;

2、点击filename.generated.h,出现提示filename.generated.h在源文件中找不到

一般情况下,重新编译后,这个错误便会消失,但是若错误一直存在,可以通过以下方法解决

解决办法:

把**#include “filename.generated.h”**剪切,然后项目保存一下,重新粘贴回去,保存后,便会自己重新生成这个文件。可在External Dependencies中查找到该头文件

3、删除不需要的自定义C++类

  1. 关闭Visual Studio、UE4编辑器
  2. 删除项目中Soure文件夹中的你想删除的*.cpp和*.h文件
  3. 删除项目中的Binaries文件夹
  4. 右键. uproject文件,点击Generate Visual Studio project files
  5. 右键. uproject文件,点击Open,如果提示需要重新编译项目,选择是

若有其他问题会继续更新

4、UE4中导入FBX模型,渲染后,模型变黑

解决办法:

1、模型变黑,说明该模型的光照UV有问题,在做好模型后需要好好展一下UV

下面记录一下在3DMax中 自动展UV

以一个盒子为例,随便在3D中拽一个盒子
UE4编程遇到的问题及解决方法_第1张图片
接下来很简单直接看图操作就好了
UE4编程遇到的问题及解决方法_第2张图片

虚线为鼠标左键框选区域
UE4编程遇到的问题及解决方法_第3张图片
UE4编程遇到的问题及解决方法_第4张图片
点击确认,好,完成,简直Prefect!
UE4编程遇到的问题及解决方法_第5张图片

2、将展完的模型重新导出为FBX模型,导入到UE4中,重新渲染后,可以看见模型不再为一片黑了

3、若模型有局部黑边,双击模型,进入材质编辑器
UE4编程遇到的问题及解决方法_第6张图片

光照UV通道:在Max看好UV所放通道,如果放在1通道,那在UE4选择光照UV通道时就是0通道,Max 2通道对应1通道

光照UV贴图质量:数值越高,分辨率越大,黑边就会越淡,但相对的渲染的时间需要更长。

你可能感兴趣的:(UE4)