我有一个圆形的健康栏。当当前或最大生命周期发生变化时,它会更新。
healthBar.fillAmount = currentHealth / maxHealth;
所以这个酒吧看起来很无聊。 " pieces"之间没有任何边界。当我得到八个生命点时,我想在那里看到八个部分。
超级马里奥64应该是一个很好的例子
重要的是让小边框显示生命点。这甚至可能吗?
我没有8点生命值。生命点不是恒定的。它们由值X设置。否则我可以使用纹理,是的。此外,我想增加游戏中的最大生命,所以一切都必须动态地工作。
答案 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)));
}
}