1、制作一个双击事件创建一个MacroDelay可以控制点击的时间2、UMG 穿透设置把最上层组件设置为Self Hit Test invisible其它组件设置默认添加Handled到OnMouseButtonDown3、重新制作窗口标题栏runtime1、在ProjectSettings——Description——UseBorderlessWindow勾选使用无边框2、使用ExecuteConsoleCommand命令r.setRes 1280x720w窗口化3、制作一个自定义标题栏4、编写移动窗口代码//传入移动值 void Test::MoveWindow(FVector2D ViewportPosition) { if (GEngine GEngine-GameViewport) { GEngine-GameViewport-GetWindow()-MoveWindowTo(ViewportPosition); } }5、在蓝图应用*在编辑器下是有标题栏的所以最好在打包下测试拖拽窗口6、编写最小化代码void Test::Minimize() { if (GEngine GEngine-GameViewport) { GEngine-GameViewport-GetWindow()-Minimize(); } }7、编写最大化代码void Test::Maximize() { if (GEngine GEngine-GameViewport) { GEngine-GameViewport-GetWindow()-Maximize(); } }8、编写恢复代码void UMyBlueprintFunctionLibrary::Restore() { if (GEngine GEngine-GameViewport) { GEngine-GameViewport-GetWindow()-Restore(); } }9、关闭窗口QuitGame4、使用命令行打包1、新建.bat文件把路径修改执行bat文件F:/Program Files/Epic Games/UE_4.22/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project/../../LoadMesh.uproject -noP4 -clientconfigDevelopment -serverconfigDevelopment -nocompile -nocompileeditor -installed -ue4exeUE4Editor-Cmd.exe -utf8output -platformWin32 -targetplatformWin32 -build -cook -mapTest -unversionedcookedcontent -pak -createreleaseversion1.0.0 -compressed -stage -package2、可以参考3、针对需要参数的进行添加、修改5、WebUI CallWebUI技术文档http://cdn.tracerinteractive.com/webui/documentation.pdf//引用到UE4 if (typeof ue ! object || typeof ue.interface ! object || ue.interface.broadcast ! function) { if (typeof ue ! object) ue {}; // mobile ue.interface {}; ue.interface.broadcast function (name, data) { if (typeof name ! string) return; var args [name, ]; if (typeof data ! undefined) args[1] data; var hash encodeURIComponent(JSON.stringify(args)); if (typeof history object typeof history.pushState function) { history.pushState({}, , # hash); history.pushState({}, , # encodeURIComponent([])); } else { document.location.hash hash; document.location.hash encodeURIComponent([]); } }; } else (function (obj) { // desktop ue.interface {}; ue.interface.broadcast function (name, data) { if (typeof name ! string) return; if (typeof data ! undefined) obj.broadcast(name, JSON.stringify(data)); else obj.broadcast(name, ); }; })(ue.interface); // create the global ue4(...) helper function ue4 ue.interface.broadcast;ue.interface.setFPS function(fps) { $(#ue4test5).text(after changedfps); //alert(样式被切换了-); }; //触发事件 ue4(afd,0);定义函数setFPS参数fps。就可以在蓝图节点Call上Function:setFPSData:fps。注意1、调用setFPS时需要使用ue4()触发委托事件不然触发不了setFPS。测试过加上tickEvent连接Call可以不停触发setFPS只要触发一次就可以连续触发。2、UE4端调用Web端函数接口web端如果使用vue编写才模块需要手动在window模块下建立对象(ue.interface)在其它地方才可以调用。两端互通web是通过window的顶级容器来控制的。6、使用Excel插件记录读取Excel改写里面内容读取时间格式7、在蓝图项目下插件在打包后出现异常这是插件未被加载处理方法1、在.uplugin文件添加EnabledByDefault:false点保存可不用编译2、在.uproject文件删除 默认添加的plugins引用Plugins: [{Name: XXXXXXX,Enabled: true}]3、这时插件就没有被激活。正常激活则可。注一般在其它项目复制插件过来使用时出错8、获取文件夹下所有文件夹void UReadFileManager::GetFolderByDir(FString InDir, TArrayFString OutFolders) { //param: InDirD:\Asset\TestOsgb\* 路径后需要加“*” IFileManager FileManager IFileManager::Get(); FileManager.FindFiles(OutFolders, *InDir, false, true); }9、3D软件导入UE4格式规范3D软件导出设置单位为mm(毫米)轴向为Z10、播放视频时没有声音添加MediaSound组件Media-MediaPlayer设置为对应的MediaPlayer把添加音频组件的Actor放到场景里在Media播放时就会有声音11、数字位数显示MinimumIntegralDigits:2则0112、帧率设置1、锁定帧率Project Settings - Engine - General Settings - Use Fixed Frame Rate2、平滑同步率注因为设备的配置不同性能不同出现帧率会有快慢。所以在制作时要保持帧率一致。屏幕移动时物品出现跳帧把帧率max设置65。13、屏幕出现大范围闪烁1、程序在一体机大屏下单指触摸出现闪烁是分辨率设置问题把大小设置为100%14、滑动Camera出现残影projectSettings-Rendering-anti-AliasingMethod-FXAA15、Transform平滑过渡例如cube位移到球上使用VInterpto函数16、像素流送端口修改1、找到D:\EpicGames\UE_4.26\Engine\Source\Programs\PixelStreaming\WebServers\SignallingWebServer\cirrus.js文件2、var FRONTEND_WEBSERVER https://localhost; if (config.UseFrontend) { var httpPort 3000; var httpsPort 8000; //Required for self signed certs otherwise just get an error back when sending request to frontend see https://stackoverflow.com/a/35633993 process.env.NODE_TLS_REJECT_UNAUTHORIZED 0 const httpsClient require(./modules/httpsClient.js); var webRequest new httpsClient(); } else { //修改端口为90默认是80 var httpPort 90; var httpsPort 443; } //默认为8888修改为7777 var streamerPort 7777; // port to listen to Streamer connections3、因为可能有其它软件会占用80端口所有需要修改4、在浏览器下IP地址192.168.1.10:90本机IP端口需要加端口后缀不然打不开注因为chrome升级原因导致本机操控程序异常。可以使用其它差一点的浏览器例如QQ浏览器。17、boolean运算——DynamicMesh31、使用FMeshBoolean boolean运算需要进行把StaticMesh、ProceduralMesh转换成DynamicMesh3使用DynamicMesh3进行运算。2、ProceduralMesh to DynamicMesh3FMeshDescription MeshDescription BuildMeshDescription(PMC); TSharedPtrFDynamicMesh3 OriginalMesh MakeSharedFDynamicMesh3(); FMeshDescriptionToDynamicMesh MeshDescriptionToDynamicMesh; MeshDescriptionToDynamicMesh.Convert(MeshDescription, *OriginalMesh); MeshOut.Copy(*OriginalMesh);3、StaticMesh to DynamicMesh3可以使用获取staticmesh的section转换成ProceduralMesh再转换成DynamicMesh3但这不是最优的用法GetMeshDescription是编辑下使用的18、中文乱码FString str 中字打印str出现乱码。使用notepad转UTF-8-BOMF。FString str TEXT(中字)就可以正常打印。19、插件封装1、制作完插件后在UE4编辑器插件界面上运行打包插件2、直接打开.build.cs文件下添加不用再编译VS//不编译模块 bUsePrecompiled true;3、删除源文件4、插件文件夹就可以发布了遇到的问题1遇到缺少PrecompileForTargets PrecompileTargetsType.Any需要运行插件打包不然打包会出错。我现在这种情况就是没有使用插件打包。20、安装UE5缺少dotnet运行出现异常下载 .NET 6.0 Runtime (v6.0.12) - Windows x64 Installer5.0打包失败下载 .NET Core 3.1 Desktop Runtime (v3.1.32) - Windows x64 Installer21、触摸屏仅触发一次UE5ModelingToolsEditorMode的插件导致了此错误22、实现材质球前置显示23、播放不了视频使用4K分辨率3840*2160时运行程序读取视频时出现下图错误解决方案需要把百分比设置为150%24、VS启动UE引擎异常解决方案把项目需要使用的插件需要在.uproject上包含插件Plugins: [ { Name: XXXX, Enabled: true } ]25、代理、委托是分蓝图使用和C的//BP DECLARE_DYNAMIC_DELEGATE_ThreeParams(FSimpleHttpSingleRequestCompleteDelegate,const FSimpleHttpRequest ,Request,const FSimpleHttpResponse , Response,bool ,bConnectedSuccessfully); DECLARE_DYNAMIC_DELEGATE_ThreeParams(FSimpleHttpSingleRequestProgressDelegate,const FSimpleHttpRequest , Request, int64, BytesSent, int64, BytesReceived); DECLARE_DYNAMIC_DELEGATE_ThreeParams(FSimpleHttpSingleRequestHeaderReceivedDelegate, const FSimpleHttpRequest , Request, const FString , HeaderName, const FString , NewHeaderValue); DECLARE_DYNAMIC_DELEGATE(FAllRequestCompleteDelegate); //C DECLARE_DELEGATE_ThreeParams(FSimpleSingleCompleteDelegate, const FSimpleHttpRequest , const FSimpleHttpResponse , bool); DECLARE_DELEGATE_ThreeParams(FSimpleSingleRequestProgressDelegate, const FSimpleHttpRequest , int64, int64); DECLARE_DELEGATE_ThreeParams(FSimpleSingleRequestHeaderReceivedDelegate, const FSimpleHttpRequest , const FString , const FString );26、VS安装配置https://docs.unrealengine.com/5.2/zh-CN/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/27、 texture streaming pool over budgetProjectSettings-Textures-Texture Streaming 把勾去掉28、出现Renderthread渲染线程等待出错DefaultRHI:使用DX11时可能出错设置DX12可解决问题29、WigetToPNGUE4/5 UMG中截屏保存Widget方法 | Calmer的文章30、Http请求出现断网使用命令行启动UE程序时连续启动需要延迟启动不然http请求会出现断网31、展UV
