浏览代码

鼠标绘制矩形

usuiforhe 4 年之前
父节点
当前提交
3cb75a65d8
共有 3 个文件被更改,包括 18 次插入1 次删除
  1. 二进制
      gif/UE_Asset11.gif
  2. 二进制
      img/UE_Asset116.png
  3. 18 1
      虚幻.md

二进制
gif/UE_Asset11.gif


二进制
img/UE_Asset116.png


+ 18 - 1
虚幻.md

@@ -1,7 +1,7 @@
 <!--
  * @Author: lc
  * @Date: 2021-09-03 21:41:18
- * @LastEditTime: 2021-09-18 18:00:53
+ * @LastEditTime: 2021-09-18 19:07:36
  * @LastEditors: Please set LastEditors
  * @Description: 虚幻学习
  * @FilePath: D:\Projects\markdown\虚幻.md
@@ -1329,3 +1329,20 @@ HUD默认自身是不接受键盘输入事件的,本身HUD就不应直接响
 
 另外还有两个工具库函数`Project World to Screen`和`Project Screen to Wolrd`  
 
+- **鼠标绘制矩形**
+
+![坐标转换](img/UE_Asset116.png)
+
+![效果](gif/UE_Asset11.gif)
+
+> 用IsDraw表示当前鼠标是按下还是释放,记录按下位置和当前位置绘制矩形,释放不再绘制  
+> 用ClickPos这个Vector2D变量存储鼠标按下的坐标  
+
+---
+
+- **框选场景目标**
+
+将场景对象的三维坐标转换成UI的二维坐标,再判断是否在框选的矩形范围内即可  
+
+这里要使用的是`Project World to Screen`和`Project Screen to Wolrd`坐标转换函数,因为这里的判断明显不在`Receive Draw HUD`中,所以不能使用`Deproject`和`Project`  
+