UI控件蓝图
 

1、让UI动起来

(1)
创建事件AimMoveEvent,接受参数Dir,即UI的移动方向
(2)
*5是控制ui的移动速度(阅者可自行调整,建议提升为参数),CorssHairPosition是相对于初始位置的当前位移,初值是0
这一块是基于当前视口大小进行限制准信的移动,防止移出屏幕,可根据个人需求设计
把准心位移值crossHairPosition加上视口中心viewportcenter(加上视口中心的原因是因为作者把ui的初始位置设置在视口中心了,读者可以自行斟酌),再把值赋予aimPosition,即UI当前在视口的位置
需注意通过设置视口中位置去设置ui的屏幕坐标时,该坐标是指ui最左上角的坐标
同时一个热知识,ui的屏幕坐标是以屏幕左上角为原点,向右和向下为正
 
这样我们通过接入输入设备,并把输入设备的方向传入该事件,就可以让ui移动起来了
 

2、锁定敌人

创建事件aimEvent,主要是利用投影的原理,把敌人的坐标投影到屏幕坐标,通过计算,查看该坐标是否在准心瞄准内,从而实现通过UI锁定actor
(1)
把敌人坐标转为屏幕坐标
(2)
通过aimPosition和下面那一堆方法(用于获取准心ui的尺寸大小)然后相加(相加的原因是因为上面说过,aimPosition指的是准心UI的左上角在屏幕上的位置),得到准心中心在屏幕上的坐标
(3)
然后就是查看是否被框住了,这个方法仁者见仁智者见智,可以使用作者的方法(适用于准心是矩形的),也可以通过向量的叉乘去查看点是否在多边形内
 
 
 
 

UE蓝图:准心锁定敌人实现,通过UI锁定敌人的更多相关文章

  1. [UE4]添加射击的准心

    其实就是创建一个UI Widget,在UI Widget中添加一个准心图片(png)格式,准心图片设置为屏幕居中对齐,然后在自定义的GameMode中把这个UI Widget添加到视图中.

  2. [转]SQL Server表锁定原理以及如何解除锁定

    2010年10月13日 12:46 来源:部松昌的博客 作者:部松昌 编辑:胡铭娅 一: 下面以AdventureWorks2008为示例数据库做简要的说明,过滤掉一般的数据库的共享锁, 作为示例必须 ...

  3. UE蓝图---实现场景物体Transform状态重置效果

    在工业领域应用中,通常会遇到操作场景模型变换的操作,经过了移动.旋转.缩放后,要求可一键重置还原最初的Transform状态. 思路:1.在模型阶段设置每个模型Tag值为Oper,表明是可被操作的对象 ...

  4. pygame系列_百度随心听_完美的UI设计

    这个程序的灵感来自于百度随心听 下面是我的程序截图: 说明: 动作按钮全部是画出来的,没有用到任何图片 用到图片的只有:背景,歌手图片,作者图片 代码正在调试中.... 如果你鼠标移动到黄色小圆里面, ...

  5. Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法

    转至:https://blog.csdn.net/qq_38161040/article/details/108274161 用户多次密码输入错误达到一定值就会被锁定. -- 用户锁定方法 alter ...

  6. SQL2005中的事务与锁定(一) - 转载

    ----------------------------------------------------------------------- -- Author : HappyFlyStone -- ...

  7. NPOI导出数据,设置格式,锁定单元格

    代码包括: 1:导出多个sheet    2:设置单元格格式   3:合并单元格   4:下拉框选项   5:输入数字限制   6:锁定单元格 static void Main(string[] ar ...

  8. UWP Composition API - 锁定列的FlexGrid

    需求是第一列锁定,那么怎么让锁定列不跟着滚动条向做移动呢? 其实很简单,让锁定列跟scrollviewer的滚动做反方向移动. 先看一下这个控件的模板,嗯,其实很简单,就是ListView的模板,不同 ...

  9. Python 文件读写,条件循环(三次登录锁定账号实例)

    通过文件读写,条件循环相关语法,实现三次登录失败则锁定该账号的功能 需求一 """需求描述: 1.输入正确账号,密码,退出程序 2.登录失败,重新输入账号密码 3.同一账 ...

  10. Asp文件锁定脚本

    锁定指定文件 <% on error resume next server.ScriptTimeout= response.write "<form method=post> ...

随机推荐

  1. uni-app小程序项目使用iconfont字体图标

    前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app. 为什么要这么做? 借 ...

  2. 史上最牛X的微信公众号!

    今天给大家推荐一个最牛逼的微信公众号,专注分享技术干货,包括但不限于Java,HTML,JavaScript,MySQL,Redis,Windows,Linux,Spring,SpringBoot,V ...

  3. 执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

    原因是因为防火墙关闭之后需要重启docker服务. 执行: service docker restart 即可.

  4. P10936 导弹防御塔 题解

    题目链接 题目大意 城堡有 m 个敌人.n 个能发射导弹的防御塔.导弹的速度固定,都为 v.导弹需要 T1 秒发射,T2 分钟冷却,还需要防御塔到敌人距离的 dis/v 的时间.给定防御塔和敌人的坐标 ...

  5. win7语言栏不见了,只显示搜狗输入法,不显示中文(简体)-美式键盘

    参考百度经验: win7右下角输入法图标不见了[终极方法]

  6. 即时通讯技术文集(第41期):直播技术合集(Part1) [共12篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第41 期. [- 1 -] 移动端实时音视频直播技术详解(一):开篇 [链接] http:// ...

  7. JSON和XML的对比及应用领域

    JSON和XML的对比 对比表格 对比维度 JSON XML 可读性 通常更简洁,易于阅读和编写12 结构清晰,但可能因标签和属性而显得冗长1 解析难度 解析通常比XML简单,多数现代编程语言内置解析 ...

  8. springboot-多模块构建-1

    1. 场景描述 先介绍下背景,项目为什么需要用多模块?springmvc难道还不够? (1)设计模式真言:"高内聚.低耦合",springmvc项目,一般会把项目分成多个包:con ...

  9. 关于 static 和 final 的一些理解

    今天主要回顾一下 static 和 final 这两个关键字. 1. static  -  静态 修饰符 - 用于修饰数据(变量.对象).方法.代码块以及内部类.         1.1 静态变量 用 ...

  10. linux安装软件配置

    CentOS7更换yum为阿里源 1 备份本地源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu ...