主页
  • English
  • 中文
主页
  • English
  • 中文
  • 起步

    • 安装
    • Hello LGUI
    • 自定义按钮
    • 使用自定义字体
    • 预制体工作流
    • 交互
    • 从零创建个按钮
  • 样例工程

    • 样例工程
  • 常见问题

    • 为什么要用预制体?
    • 世界空间位置投射到LGUI的屏幕空间位置
    • LGUI的屏幕空间位置投射到世界空间
    • 根据名字查找子物体
    • 如何获取预制体中的Actor或Component
    • 抗锯齿

LGUI的屏幕空间位置投射到世界空间

假如我们想让一个世界空间的Actor随着一个UI元素的位置来变化,那么这个知识点就很有用了。

主要有两个节点:一个是Convert Position from LGUICanvas to Viewport,这是LGUICanvasScaler类提供的节点:

属性:方法:
TargetLGUICanvasScaler组件物体。
PositionLGUI屏幕空间的位置。注意左下角是0点,所以提供这个位置的UI元素需要把锚点设置为左下角,并且父物体需要是全屏幕尺寸。
Return Value需要使用的屏幕空间位置,左上角是0位置。

还有一个节点是Deproject Screen to World,这是引擎自带的节点:

我们可以把这些节点连成下图的样子:
我们可以用计算结果的World Position和World Direction参数来做LineTrace。Control是个UIBaseActor,代表的是屏幕上的UI元素;Root是ScreenSpaceUIRoot的Actor,并且必须要有LGUICanvasScaler组件。

Last Updated:
Contributors: lf2007hf
Prev
世界空间位置投射到LGUI的屏幕空间位置
Next
根据名字查找子物体