RectTransform.GetWorldCorners()在后台做什么?这个很贵吗?

时间:2019-05-15 05:37:41

标签: unity3d

Unity 2D UI方法RectTransform.GetWorldCorners()的作用是什么?我担心它太贵了。它是否使用Raycasting查找世界角落?

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

1 个答案:

答案 0 :(得分:3)

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

  1. 呼叫RectTransform.GetLocalCorners(),并从RectTransform.rect获取本地角。
  2. 每个局部角点都与transform.localToWorldMatrix矩阵相乘。

因此,显然该方法使用起来相对[strong]便宜,但是始终缓存结果,直到对RectTransform进行任何更改为止。