Unity动态绘制圆形健康栏

时间:2017-06-04 21:59:29

标签: c# unity3d

我有一个圆形的健康栏。当当前或最大生命周期发生变化时,它会更新。

healthBar.fillAmount = currentHealth / maxHealth;

所以这个酒吧看起来很无聊。 " pieces"之间没有任何边界。当我得到八个生命点时,我想在那里看到八个部分。

超级马里奥64应该是一个很好的例子

Super Mario 64

重要的是让小边框显示生命点。这甚至可能吗?

我没有8点生命值。生命点不是恒定的。它们由值X设置。否则我可以使用纹理,是的。此外,我想增加游戏中的最大生命,所以一切都必须动态地工作。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是在图形编辑器中创建细线,将其作为精灵导入Unity,然后将精灵添加为场景中的Image对象。

如果您有八个健康部分,则需要相隔45度的4条边界线。下面的代码将根据需要多次克隆图像(通过字段设置,而不是如你所说的那样设置)并围绕z轴旋转每个克隆。

public GameObject line; //Set your line image via the inspector here
private int pieces = 8;

public void DrawLines()
{
   int linecount = pieces/2;
   float angle = 360 / linecount;

   for(int i = 0; i < linecount; i++)
   {
       GameObject clone = Instantiate(line, Vector3.zero, 
       Quaternion.Euler(0,0,(angle*i)));
   }
}