UE4&C++]输入模式

游戏输入模式

共三种输入模式

FInputModeGameOnly 游戏模式
本模式自动隐去鼠标指针,如果点击鼠标,鼠标不会响应(其实是快速点两次才响应),键盘与控制器不影响

FInputModeGameOnly GameOnlyMode;
// 用来设置是否节省鼠标点击的消耗,就是点击鼠标两次才响应

/** 源码注解
 Data structure used to setup an input mode that allows only the player input / player controller to respond to user input. 
 用于设置仅允许玩家输入/玩家控制器响应用户输入的输入模式的数据结构。
 */
GameOnlyMode.SetConsumeCaptureMouseDown(false);// 取消节省,点击鼠标也会有反应 
SetInputMode(GameAndUIMode);

FInputModeGameAndUI 游戏与UI模式
需要用到鼠标指针操作时的情况

FInputModeGameAndUI GameAndUIMode;
// 聚焦到确定的Widget
GameAndUIMode.SetWidgetToFocus(/*输入一个SWidget的类*/);
// 鼠标按下时是否隐藏鼠标 默认true
GameAndUIMode.SetHideCursorDuringCapture(false); 
// 锁定鼠标在视口内 默认不锁定
GameAndUIMode.SetLockMouseToViewportBehavior(EMouseLockMode::LockAlways);

FInputModeUIOnly UI模式
纯UI模式,常用在主界面

FInputModeUIOnly UIOnlyMode;
UIOnlyMode.SetWidgetToFocus();// 同FInputModeGameAndUI
UIOnlyMode.SetLockMouseToViewportBehavior();// 同FInputModeGameAndUI

评论