【问题标题】:Unity paint circular healthbar dynamicallyUnity动态绘制圆形健康条
【发布时间】:2017-06-05 16:40:48
【问题描述】:

我有一个循环健康条。当当前或最大寿命发生变化时,它会更新。

healthBar.fillAmount = currentHealth / maxHealth;

所以这个酒吧看起来很无聊。 “碎片”之间没有边界。当我得到八个生命值时,我想在那里看到八个部分。

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

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

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

【问题讨论】:

  • 也许您可以尝试以编程方式绘制它们,例如使用GL 库?它可以让您完全控制所呈现的内容,尽管它比开箱即用的功能要简单得多。

标签: c# unity3d


【解决方案1】:

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

如果您有 8 个生命值,则需要 4 条相隔 45 度的边界线。下面的代码将根据需要多次克隆图像(通过字段片段设置,而不是您所说的 X)并围绕 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)));
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2017-08-25
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2022-06-13
    相关资源
    最近更新 更多