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