1,获取鼠标在当前场景中坐标系统的中的position,加入场景地图的范围是一千平方米,那么这个position的范围也是1000米x1000米。

注册鼠标事件

FInputActionBinding &action1 = InputComponent->BindAction("SetDestination", IE_Pressed, this, &AHPlayerController::OnSetDestinationPressed);

函数实现MoveToMouseCursor(),此函数放在PlayerController::PlayerTick()内调用,重写下PlayerTick():

void AHPlayerController::MoveToMouseCursor()
{
// Trace to see what is under the mouse cursor
FHitResult Hit;
GetHitResultUnderCursor(ECC_Visibility, false, Hit); if (Hit.bBlockingHit)
{
// We hit something, move there
SetNewMoveDestination(Hit.ImpactPoint);
}
}

2,获取鼠标再显示屏内的坐标系统的position。假如屏幕分辨率是1280x720,那么这个position的范围就是(0, 0)到(1280, 720)。PlayerController::GetMousePosition()。

AHPlayerController* PC = ...

float LocX = ;
float LocY = ;
PC->GetMousePosition(LocX, LocY);

3,触屏设备上获取场景内点击的position,其范围与第1种情况相同。

注册touch事件

InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &AHPlayerController::MoveToTouchLocation);

函数实现:

void AHPlayerController::MoveToTouchLocation(const ETouchIndex::Type FingerIndex, const FVector Location)
{
FVector2D ScreenSpaceLocation(Location); // Trace to see what is under the touch location
FHitResult HitResult;
GetHitResultAtScreenPosition(ScreenSpaceLocation, CurrentClickTraceChannel, true, HitResult);
if (HitResult.bBlockingHit)
{
// We hit something, move there
SetNewMoveDestination(HitResult.ImpactPoint);
}
}

最新文章

  1. IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)
  2. html初学者笔记01
  3. Metro UI 菜单(Winform)
  4. 解决多网卡SNMP获取不到数据的问题
  5. Oracle建表实例
  6. 【转】SVN服务器端安装、配置与管理--不错
  7. redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
  8. 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
  9. appium实例编写(1)---以ContactsTest.apk 操作为例
  10. JavaSe:UncaughtExceptionHandler
  11. JS实现快速排序,冒泡排序
  12. .NET Core 多项目工程生成EF迁移代码
  13. mysql 开发基础系列20 事务控制和锁定语句(上)
  14. Java面试题详解四:==和equals的去别
  15. Compiling U-Boot
  16. ubuntu下安装bin文件
  17. viewer.js使用
  18. 6、Redis中对Hash类型的操作命令
  19. 创建 React-Native 工程时,如何指定特定的 React-Native 版本
  20. 股票的历史市盈率查询PE

热门文章

  1. pat 集合相似度
  2. apache中的RewriteCond、RewriteRule
  3. 解决Ubuntu下添加Log却无法输出(高通平台)
  4. C# 对象不能从 DBNull 转换为其他类型。
  5. Android 引入外部模块编译选择
  6. OK335xS U-boot 环境变量解析
  7. DS18B20配置
  8. Unity3D插件-自制小插件、简化代码便于使用(新手至高手进阶必经之路)
  9. C#/.NET 使用 CommandLineParser 来标准化地解析命令行
  10. 杭电 KazaQ's Socks