您当前的位置:首页 VR开发 Unity 正文

实现Unity中UGUI人物血条跟随(二)

查看: 6157| 评论: 1 2016-11-17 12:09 PM| 发布者: PeckBang

上次我们说了第一种方法,现在我们讲第二种,相比第一种也很简单

大概原理是:把Player的世界坐标转为屏幕坐标,血条坐标就等于Player的屏幕坐标加上Player中心点到头顶的差值

首先创建Canvas(注意这里的Canvas不要作为Player的子物体)并创建Slider,并且把slider下面的Background和Handle Slide Area删除掉或者禁用掉。大概布局就是这样!

具体血条制作也跟上篇相似,这里不多讲。效果如图


在Player身上加一个Follow脚本,在Player身上加脚本而不在slider身上加脚本的原因是我想让血条超出屏幕就关闭显示,这样对优化有好处

脚本也很简单,几行代码就能实现一个很炫酷的功能:

[csharp] view plain copy
  1. public float xOffset;  
  2.     public float yOffset;  
  3.     public RectTransform recTransform;  
  4.   
  5.     void Update ()  
  6.     {  
  7.         Vector2 player2DPosition = Camera.main.WorldToScreenPoint(transform.position);  
  8.         recTransform.position = player2DPosition + new Vector2(xOffset, yOffset);  
  9.   
  10.         //血条超出屏幕就不显示  
  11.         if (player2DPosition.x > Screen.width || player2DPosition.x < 0 || player2DPosition.y > Screen.height || player2DPosition.y < 0)  
  12.         {  
  13.             recTransform.gameObject.SetActive(false);  
  14.         }  
  15.         else  
  16.         {  
  17.             recTransform.gameObject.SetActive(true);  
  18.         }  
  19.     }  

点击运行就能看到血条已经在头顶显示了,并且如果角色不在屏幕内,血条会自动关闭。

是不是很带感!

52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 1 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-22 09:20 PM

返回顶部