当前位置:   article > 正文

unity实现UI元素跟随3D物体_unity ui跟随在物体

unity ui跟随在物体

unity实现UI元素跟随3D物

本文实例为大家分享了unity实现UI元素跟随3D物体的具体代码,供大家参考,具体内容如下

Canvas不同的渲染模式(RenderMode)下实现UI跟随3D物体

当Canvas.RenderMode为Screen Space-Overlay时

利用WorldToScreenPoint(worldPos)将物体的世界坐标转换成屏幕坐标,实时更新UI的坐标:


```csharp
using UnityEngine;
using System.Collections;

public class FollowWorldObj : MonoBehaviour {
 [SerializeField]
 GameObject worldPos;//3D物体(人物)
 [SerializeField]
 RectTransform rectTrans;//UI元素(如:血条等)
 public Vector2 offset;//偏移量

 // Update is called once per frame
 void Update () {
  Vector2 screenPos=Camera.main.WorldToScreenPoint(worldPos.transform.position);
  rectTrans.position = screenPos + offset;
 }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

当Canvas.RenderMode为Screen Space-Camera时

利用RectTransformUtility.ScreenPointToLocalPointInRectangle换算出UI元素在Canvas的2D坐标:

using UnityEngine;
using System.Collection
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/111381?site
推荐阅读
相关标签
  

闽ICP备14008679号