1.UE4-Slate源码学习(四)FSceneViewport
UE4-Slate源码学习(四)FSceneViewport
即视口是源码引擎中显示游戏画面的SWidget控件,也是下载编辑器中显示游戏内容的窗口。场景绘制视口(FSceneViewport)与SViewport绑定,源码用于场景渲染。下载thinkjs3.0源码鼠标捕获模式(EMouseCaptureMode)与鼠标锁定模式(EMouseLockMode)在项目设置中可配置,源码影响鼠标的下载交互。FSceneViewport事件处理包括鼠标按下(OnMouseButtonDown)、源码触摸开始(OnTouchStarted),下载事件响应后构造FReply,源码并更新几何体缓存、下载鼠标位置缓存。源码28货币交易 源码鼠标位置由绝对坐标转换为相对于视口的下载相对坐标。根据捕获状态和输入处理逻辑,源码事件最终被传递至PlayerController,下载通过PlayerInput管理。源码对于触摸输入,流程管理源码实现处理流程类似,调用InputTouch接口。
移动事件(OnMouseMove)、触摸移动(OnTouchMoved)记录鼠标的Delta和NumMouseSample累计值,Tick时处理。答题领取红包源码ProcessAccumulatedPointerInput在Tick阶段调用,处理键盘、鼠标输入,相关流程见第二章。完成输入处理后,登录界面源码htmlFEngineLoop调用FinishedInputThisFrame,最终在ProcessAccumulatedPointerInput中调用InputAxis,处理至PlayerController的InputAxis,存储在PlayerInput中。其他事件如鼠标释放(OnMouseButtonUp)、触摸结束(OnTouchEnded)同样遵循类似流程。
若SWidget为视口,执行相关事件调用至ViewportClient接口,进而触发输入系统(PlayerController、PlayerInput、InputComponent)。日常游戏开发中,通过视口事件实现如旋转相机、隐藏鼠标等操作。PlayerController提供三种模式(FInputModeUIOnly、FInputModeGameAndUI、FInputModeGameOnly),通过调整SViewport和ViewportClient参数,实现不同模式下的捕获、锁定、显隐鼠标功能。所讨论内容基于UE4版本4..2。