UE4 注意项

11 篇文章 0 订阅
1.事件

        鼠标/键盘事件,注意不要和Input Action事件冲突;

2.升级

(1) 4.22-》4.24

          问题:关卡加载或运行GetD3D11TextureFromRHITexture异常

          原因:弃用模块UtilityShaders

          处理:模块UtilityShaders替换为GameplayMediaEncoder

(2)error C4668

        *.Build.cs里添加:

        bEnableUndefinedIdentifierWarnings = false;

3.工程命名

        不能把工程放在以数字开头的文件夹中:

        报错:error C2007: #define syntax

        原因:UE4在生成*.generated.h文件时会用到工程所在的文件夹名称作为宏定义的前缀;而C++通用的命名规则:命名中只能出现数字、字母和下划线,且不能以数字开头

//output
//*.generated.h(17): error C2007: #define syntax
// error C2143: syntax error: missing ';' before '<class-head>'
// error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
// error C3861: 'FOnLoadCompleted_DelegateWrapper': identifier not found


//EntranceManager.generated.h
#define 文件夹名称_Source_DigitaltwinModule_Private_System_Logic_Entrance_EntranceManager_h_34_ENHANCED_CONSTRUCTORS \
private: \
…

//CommonFuncLibrary.generated.h
#define 文件夹名称_Plugins_CommonFuncPlugin_Source_CommonFuncPlugin_Public_CommonFuncLibrary_h_41_RPC_WRAPPERS_NO_PURE_DECLS \
 …
4.之前定义的结构编译标识为未定义结构

        可能原因1:未引用相关头文件;

        可能原因2:相关头文件已引用,检查是否存在相互引用。

5.网页缓存

        位置:C:\Users\用户名\AppData\Local\项目名\Saved\webcache_****

        清理:删除webcache_****;

6.打包后,F11全屏不了问题

        处理:C:\Users\用户名\AppData\Local\项目名\Saved\Config\WindowsNoEditor

        定位到[/Script/Engine.GameUserSettings]标签:(清理其他,剩余以下两项)        

[/Script/Engine.GameUserSettings]
FullscreenMode=0
Version=5

运行后更新效果:

[/Script/Engine.GameUserSettings]
FullscreenMode=1
Version=5
bUseVSync=False
bUseDynamicResolution=False
ResolutionSizeX=1600
ResolutionSizeY=900
LastUserConfirmedResolutionSizeX=1600
LastUserConfirmedResolutionSizeY=900
WindowPosX=-1
WindowPosY=-1
LastConfirmedFullscreenMode=1
PreferredFullscreenMode=1
AudioQualityLevel=0
LastConfirmedAudioQualityLevel=0
FrameRateLimit=0.000000
DesiredScreenWidth=1280
bUseDesiredScreenHeight=False
DesiredScreenHeight=720
LastUserConfirmedDesiredScreenWidth=1280
LastUserConfirmedDesiredScreenHeight=720
LastRecommendedScreenWidth=-1.000000
LastRecommendedScreenHeight=-1.000000
LastCPUBenchmarkResult=-1.000000
LastGPUBenchmarkResult=-1.000000
LastGPUBenchmarkMultiplier=1.000000
bUseHDRDisplayOutput=False
HDRDisplayOutputNits=1000
7. C1083 *.generated.h找不到问题

原因:可能是UE类/结构使用方式;

处理:.h文件声明待使用类/结构,变量定义 class 类名 变量名;  / struct 结构名 变量名; 
            .cpp include待使用类/结构的头文件。

8.error CS0101: 命名空间“<全局命名空间>”已经包含了“PivotTool”的定义
生成工程文件或创建C++工程失败

 原因:UE所需VS功能安装不全或UE安装问题;

处理:(1)Visual Studio Installer补充安装UE所需功能;(2)重新安装指定版本UE。

8.1 Intermediate\Source\工程名.Build.cs(3,14) : error CS0101: 命名空间“<全局命名空间>”已经包含了“工程名”的定义

原因:直接拷贝Source文件夹到现有工程,直接生成工程文件
处理:先删除Intermediate文件,然后生成工程文件

9. [Compiler] This blueprint (self) is not a *, therefore ' Target ' must have a connection.

  原因:UBlueprintFunctionLibrary函数未添加static关键字
  处理:UBlueprintFunctionLibrary函数添加static关键字

10. 屏蔽默认鼠标控制

  原因:调式应用鼠标位置
  处理:场景添加Camera Actor,设置属性
             AutoPlayerActivation -> Auto Activate for Player : Player 0

11. Shader requested a global uniform buffer of type 'VirtualShadowMap' at static slot '[Name: VirtualShadowMapUbSlot, Slot: 5]', but it was null. The uniform buffer should be bound using RHICmdList.SetStaticUniformBuffers() or passed into an RDG pass using SHADER_PARAMETER_STRUCT_REF() or SHADER_PARAMETER_RDG_UNIFORM_BUFFER().

        原因:Shadow Map Method未设置为虚拟阴影贴图
        处理:
        关闭 Forward Shading


        开启SM6


Shadow Map Method:Virtual Shadow Maps(Beta)

12. UE4.27源码编译 ,Windows SDK版本问题

 问题:Windows Kits\10\include\10.0.18362.0\um\winnt.h(2482): error C2338: Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined.

参考:4.22.3 building from source raises C2338: Windows headers require the default packing option - Programming & Scripting - Epic Developer Community Forums

处理:

        修改文件,调整SDK版本号顺序:Engine\Source\Programs\UnrealBuildTool\Platform\Windows\UEBuildWindows.cs
            /// <summary>
            /// The default Windows SDK version to be used, if installed.
            /// </summary>
            static readonly VersionNumber[] PreferredWindowsSdkVersions = new VersionNumber[]
            {            
                VersionNumber.Parse("10.0.16299.0"),
                VersionNumber.Parse("10.0.18362.0")
            };

13. 放置到关卡中的Actor的蓝图逻辑不执行

打包提示:LogGameState: Error:Mixing AGameState with AGameModeBase is not compatible.Change AGameModeBase subclass (自定义GameModel_C) to derive from AGameMode, or make both derive from Base

处理:把自定义的GameModel的基类由AGameModeBase改为AGameMode。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4中的数据表格(Data Table)是一种用于存储数据的表格形式,类似于电子表格软件中的数据表格。数据表格可以用于存储游戏中的各种数据,如游戏物品、关卡数据、角色属性等等。与代码中硬编码的数据不同,数据表格可以在游戏运行时动态加载和修改,提高了游戏数据的灵活性和可维护性。 数据表格可以在UE4编辑器中创建和编辑,也可以通过Excel等电子表格软件导入。在数据表格中,每一行代表一个数据,每一列代表数据的一个属性。数据表格中的每个单元格可以存储不同类型的数据,如整数、浮点数、字符串、布尔值等等。数据表格中的数据还可以通过蓝图和代码进行读取和修改。 在UE4中,使用数据表格可以提高开发效率和代码可读性。例如,在实现游戏角色的属性时,可以将角色属性存储在数据表格中,而不是将属性硬编码在代码中。这样,可以更方便地修改和管理角色属性,减少了代码的复杂性和维护难度。 在使用数据表格时,需要注意以下几点: 1. 数据表格中的数据在游戏运行时需要进行加载和解析,可能会影响游戏性能。因此,在设计数据表格时需要考虑数据量和读取频率,以保证游戏的流畅性。 2. 数据表格中的数据需要进行格式检查和错误处理,以避免出现运行时错误。 3. 数据表格中的数据需要进行版本控制,以保证不同版本之间的兼容性和数据一致性。 总之,UE4中的数据表格是一种非常有用的工具,可以帮助开发者管理和存储游戏数据,提高游戏开发效率和代码可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值