· ☕ 1 分钟
UE编辑器下模拟使用HitProxy 需要从 UGameViewportClient 类继承 修改返回值为true,路径:\Source\Runtime\Engine\Private\GameViewportClient.h 1 virtual bool RequiresHitProxyStorage() override { return true; } 在FViewportClient类中新建DrawHitProxy函数 文件UnrealClient.h 在GameViewportClient类中声明并且实现 声明:\Source\Runtime\Engine\Private\GameViewportClient.h 将GameViewportClient类中的函数Draw()内容复制到该函数DrawHitProxy,修改下面的的地方: 修改FViewport类中的GetRawHitProxyData函数 在GetRawHitProxyData函数中进行以下的修改:Engine\Source\Runtime\Engine\Private\UnrealClient.cpp 调用–获取屏幕坐标Hitproxy 相关类型 HHitProxy:用于检测用户界面命中的基类 FHitProxyMap:从2D坐标到缓存命中代理的地图。 参考: How to select an actor in-game using GetHitProxy? UE4 编辑器的光标拾取 编辑器Viewport窗口中的鼠标拾取原理 场景基本对象 渲染总流程 https://docs.unrealengine.com/zh-CN/Programming/Rendering/MeshDrawingPipeline/index.html Unreal Mesh Drawing源码分析 白袍笑道