![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 64
山中涛大爷
子在川上曰:逝者如期乎?
展开
-
关于独立程序中LineTraceSingleByObjectType失败问题解决方案
一、应用需求在数字孪生应用桌面中要实现Mesh的中和自由编辑,需要通过LineTraceSingleByObjectType随时选中场景中的任意动态Mesh.二、问题在PIE模式下通过可以通过LineTraceSingleByObjectType,鼠标可以拾取场景中任意绘制的Mesh,然而在独立程序中所有新绘制的对象都无法拾取,LineTraceSingleByObjectType返回空三、分析1、检查Mesh的碰撞设置(CollisionChannel),如下:D...原创 2022-02-08 17:33:55 · 578 阅读 · 0 评论 -
Mesh对象在世界中拾取和阴影显示配置方法
一、关于阴影设置如果Mesh选取透明材质,可以通过材质的Cast Ray Trace Shadow选项打开关闭阴影如果非透明材质,可以通过Mesh的SetCastShadow方法设置Mesh是否产生阴影二、鼠标获取世界中的投射点或拾取对象可以通过如下代码: FVector RayStart = ClickPos.WorldRay.Origin; FVector RayEnd = ClickPos.WorldRay.PointAt(999999); FColl...原创 2021-12-30 20:54:39 · 515 阅读 · 0 评论 -
UE4 C++填坑系列之Standalone Program加载Niagara插件材质丢失解决方案
最近两天用到Niagara做粒子效果,然后就发现遇到各种坑,下面简单跟大家分享下我遇到的坑及填坑方案,供大家参考:首先说下三大坑:1.源码版Engine,Niagara粒子效果无论是在Editor还是在Program都无法显示;2.解决坑一之后,会发现Niagara能显示了,但是材质丢失;3.坑三是解决坑二时遇到的一个问题:Program修改了插件描述文件后,不起作用,读不到……下面分别说下解决思路:坑一:同一台电脑,我测试了引擎版和源码版,引擎版本新建关卡,添加Niagar转载 2021-12-03 19:06:52 · 1703 阅读 · 0 评论 -
C++获取蓝图定义枚举类型相关问的解决方案
对于C++定义的Enum类型,可以使用以下代码:constUEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE,TEXT("Your_Enum_Name"), true);来获取UEnum指针,这里的ANY_PACKAGE参数,也可以是自己确定的某一个UPackage指针但对于在蓝图中定义的枚举类型,使用上述代码,返回的却是空指针,即获取失败了,通过深入跟踪UE源码,调用上述代码时候,发现其已经获取到UObject了,却返回来一个空...转载 2021-11-11 19:38:39 · 402 阅读 · 0 评论 -
DCR命令传输框架设计
一、问题提出 基于虚幻引擎开发数字孪生城市平台,需要定制开发开放的、持续进化的二次开发接口,我们可能面临的开发效率、系统稳定性的挑战需要我们认真考虑以下几个方面的问题: 1、如何避免底层对象、函数修改后开发人员花大量时间维护、反复修改接口映射逻辑 对于接口映射,最简单的逻辑就是通过具有“掌控一切”的“上帝之手”来控制所有的调用过程,这种实现的逻辑对于小型系统来说还是可以接受的,但对于相对较大的系统其灾难性是显而易见的。可以设想如果系统有成百上千个接口,映射到底...原创 2021-11-03 15:30:38 · 222 阅读 · 0 评论 -
CallFunctionByNameWithArguments支持返回值获取
山中传奇工作室 | 上线了sxl.cnhttps://ctms.mysxl.cn/ ue4中C++与l蓝图交互或外部程序基于字符串调用UObject派生类函数时会常用到CallFunctionByNameWithArguments函数,调用时一个比较麻烦的问题时调用完了无法获取返回值,主要原因是该函数在调用ProcessEvent函数时,并没对函数调用返回值进行处理,而是直接忽略掉了,而实际上该函数中完全可以获得函数的返回值。 // Call native func...原创 2021-10-31 21:30:52 · 821 阅读 · 0 评论 -
UE4 蓝图与C++交互 UserWidget
1.C++声明函数,蓝图实现该函数,C++调用 首先,在C++类中声明一个方法,使用BlueprintImplementableEvent标识该方法为蓝图实现事件; /*此函数可以在蓝图或关卡蓝图图表内进行重载*/ UFUNCTION(BlueprintImplementableEvent, Category="SplineMesh") void PrintMessage(const FString &Message) 其次,新建一个蓝图继承此类,并重载Pri转载 2021-10-19 15:24:19 · 1849 阅读 · 0 评论 -
UE4 InteractiveToolsFramework研究
目录一、框架总体结构1) 交互框架(InteractiveToolsFramework)2)工具系统(Tools, ToolBuilders, ToolManager)3)输入接口(Input Behavior System)4)小部件(Gizmos)5)对象管理(SceneObjectsManager)二、总体工作流程三、编辑工具绘制开发三维图形工具软件,开发者往往需要在Runtime模式下进行几何对象的交互编辑,如果完全从头开发难度非常巨大,我们可以通过UE4.26提原创 2021-10-07 01:12:13 · 1260 阅读 · 0 评论 -
UE4开发踩坑记录
1、APawn对象旋转控制不能直接用SetActorRotation,而应该用APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetControlRotation(CurRot); }否则APlaye...原创 2021-09-27 16:42:07 · 506 阅读 · 1 评论 -
UE4 Module加载流程
在UE4中可运行程序(EXE)引用Module可以通过动态调用和静态引用两种方式,这通过当前应用程序工程的目标编译选项决定,即由*.target.cs中的LinkType决定。1)LinkType = TargetLinkType.Monolithic时,编译采用实现包含或者静态链接等方式,不同模块中的代码编译后链接到一个单独的可执行文件中(可执行文件相对会比较大),程序运行时不依赖其他 Module 的 DLL,此处对应在项目代码中S_MONOLITHIC宏的值为true应用系统通过FModu..原创 2021-09-17 00:20:15 · 1232 阅读 · 0 评论 -
在打包项目时出现!FindPin错误的解决办法
打包时提示如下错误:PackagingResults: Error: Ensure condition failed: !FindPin(FFunctionEntryHelper::GetWorldContextPinName()) 【File:E:/UnrealEngine426/Engine/Source/Editor/BlueprintGraph/Private/K2Node_FunctionEntry.cpp】 【Line: 364】原因是蓝图函数引用了WorldContext作为输入参原创 2021-08-19 17:22:05 · 2569 阅读 · 0 评论 -
UE4中鼠标键盘事件响应解析
1、如何屏蔽掉输入“~”时,调出控制台ConsoleCommand方法一、ProjectSetting设置方法二、修改代码可见UE4是FSLateApplication,到FSceneViewport,再导UGameViewportClient,到APlayer来传到键盘事件的,关键是找到事件响应的关键逻辑:在bool UGameViewportClient::InputKey(const FInputKeyEventArgs& EventArgs),有如下判断//.原创 2021-08-03 01:21:15 · 2850 阅读 · 0 评论