首页 > 解决方案 > RectTransform.GetWorldCorners() 在幕后做了什么?这个很贵吗?

问题描述

Unity 2D UI 方法RectTransform.GetWorldCorners()在幕后做了什么?我担心它很贵。它是否使用光线投射来寻找世界角落?

仅供参考:我正在使用具有渲染模式“屏幕空间 - 相机”的画布

标签: unity3d

解决方案


我检查了我的 IDE 生成的源代码,并RectTransform.GetWorldCorners()没有执行任何光线投射。这些是它为获得世界角落而执行的步骤。

  1. 调用RectTransform.GetLocalCorners()并从RectTransform.rect.
  2. 每个局部角点都与transform.localToWorldMatrix矩阵相乘。

因此,显然该方法使用起来相对便宜,但始终缓存结果,直到您对RectTransform.


推荐阅读