it编程 > 游戏开发 > ue4

UE4 注意项

86人参与 2024-08-03 ue4

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。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

UE5打开UE4项目时内置资源库拖入资源无材质的原因与解决策略

08-03

UE4 关于使用Webbrowser插件遇到的问题以及解决办法

08-03

UE4/5更改缓存路径,为C盘减压(各种版本通用方法)

08-02

UE4 添加按键输入事件 并在蓝图中使用按键输入节点

08-02

Unreal Engine05:UE4基本概念

08-06

喋血复仇ue4已崩溃即将关闭怎么解决?喋血复仇ue4已崩溃即将关闭全面解析方案分享

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论