C# Unity动态绘制圆形健康栏

C# Unity动态绘制圆形健康栏,c#,unity3d,C#,Unity3d,我有一个圆形健康酒吧。当当前或最大使用寿命更改时,它会更新 healthBar.fillAmount = currentHealth / maxHealth; 所以这个酒吧看起来很无聊。“碎片”之间没有边界。当我得到八个生命点时,我想看到八个部分 超级马里奥64应该是一个很好的例子 重要的是要有显示生命点的小边框。这可能吗 我没有8个生命点。生命点不是恒定的。它们由值X设置。否则我可以使用纹理,是的。此外,我想增加游戏中的最大寿命,因此一切都必须动态工作。最简单的解决方案是在图形编辑器中创建

我有一个圆形健康酒吧。当当前或最大使用寿命更改时,它会更新

healthBar.fillAmount = currentHealth / maxHealth;
所以这个酒吧看起来很无聊。“碎片”之间没有边界。当我得到八个生命点时,我想看到八个部分

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

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


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

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

如果你有八个健康块,你需要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)));
   }
}
公共游戏对象线//在此处通过检查器设置您的线条图像
私人整数=8;
公共提款线()
{
int linecount=件/2;
浮动角度=360/行数;
对于(int i=0;i
最简单的解决方案是在图形编辑器中创建一条细线,将其作为精灵导入Unity,然后将精灵作为图像对象添加到场景中

如果你有八个健康块,你需要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)));
   }
}
公共游戏对象线//在此处通过检查器设置您的线条图像
私人整数=8;
公共提款线()
{
int linecount=件/2;
浮动角度=360/行数;
对于(int i=0;i
也许您可以尝试以编程方式绘制它们,例如使用
GL
库?它可以让您完全控制渲染的内容,尽管它比开箱即用功能简单得多。也许您可以尝试以编程方式绘制它们,例如使用
GL
库?它可以让您完全控制渲染的内容,尽管它比开箱即用功能简单得多。