当前位置:   article > 正文

Unity 将世界坐标转UI坐标_unity 世界坐标转ui坐标

unity 世界坐标转ui坐标

unity的物体是在世界坐标里的,如果让UI里的物体对准世界里的物体需要一系列的转换。

  1. private void ShowTowerUpgrade(TowerCtrl ctrl)
  2. {
  3. towerCtrl = ctrl;//3D世界里的物体
  4. transform.localPosition = WorldPointToUILocalPoint(ctrl.transform.position);
  5. }
  6. private Vector3 WorldPointToUILocalPoint(Vector3 point)
  7. {
  8. //将世界坐标转为屏幕坐标
  9. Vector3 screenPoint = Camera.main.WorldToScreenPoint(point);
  10. //将屏幕坐标转换到RectTransform的局部坐标中
  11. Vector2 uiPosition;
  12. RectTransformUtility.ScreenPointToLocalPointInRectangle(transform.parent.GetComponent<RectTransform>(), screenPoint, UIManager.Instance.UICamera, out uiPosition);
  13. return uiPosition;
  14. }

这段代码是挂在UI中的m_Upgrade上的,所以代码中的transform指的是m_Upgrade的transform

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/1003318
推荐阅读
相关标签
  

闽ICP备14008679号