UE4编程遇到的问题及解决⽅法
UE4编程遇到的问题及解决⽅法
注:本⽂环境基于UE4.23.1和VS2019
1、添加头⽂件后,GENERATED_BODY()报错
解决办法:
检查添加的头⽂件是否在 ated.h 这个头⽂件的后⾯,如果是,把添加的头⽂件移到ated.h 这个头⽂件的前⾯。
#include "GameFramework/SpringArmComponent.h"
#include "CoreMinimal.h"
#include "GameFramework/Pawn.h"
#include "ated.h" //这个必须得在最后
记住UCLASS()和GENERATED_BODY()各⾃所在的⾏,然后按住Ctril后,点击ated.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 }
//ated.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 \
若 ated.h ⽂件不到,可以下载Everything这个软件,将⽂件名粘贴到Everything中,即可查到。
官⽅⽂档中,不建议在前⾯加头⽂件,需要引⼊⼀个类时,可以使⽤以下⽅法
class USkeletalMeshComponent* Mesh1P;
2、点击ated.h,出现提⽰ated.h在源⽂件中不到
⼀般情况下,重新编译后,这个错误便会消失,但是若错误⼀直存在,可以通过以下⽅法解决
解决办法:
把**#include “ated.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中拽⼀个盒⼦
接下来很简单直接看图操作就好了
虚线为⿏标左键框选区域
点击确认,好,完成,简直Prefect!
2、将展完的模型重新导出为FBX模型,导⼊到UE4中,重新渲染后,可以看见模型不再为⼀⽚⿊了
3、若模型有局部⿊边,双击模型,进⼊材质编辑器
光照UV通道:在Max看好UV所放通道,如果放在1通道,那在UE4选择光照UV通道时就是0通道,Max 2通道对应1通道光照UV贴图质量:数值越⾼,分辨率越⼤,⿊边就会越淡,但相对的渲染的时间需要更长。