如何显示项目与项目给出百分比?团结c#

本文关键字:项目 百分比 团结 显示 何显示 | 更新日期: 2023-09-27 18:17:16

我在使用c#编写unity游戏脚本时遇到了问题。我想买百分比的商品。

例如,我在下面有一个List<item> Bonus:

项目|数量|百分比

  1. 币20 100%
  2. 硬币40 95%
  3. 硬币300 40%
  4. 币700 10%
  5. apple 2 60%
  6. 柠檬2 60%
  7. 橙色2 60%
  8. 木材1 90%
  9. 木材2 70%
  10. 木材3 50%
  11. 银条1 4%
  12. 鱼肉2 60%
  13. Saw 17 %
  14. 绳索1 7%

百分比项显示出现的机会。

如何从百分比中获得1个项目?它在c#中是怎样的?这些细节足够了吗?

感谢丹尼斯

如何显示项目与项目给出百分比?团结c#

我理解你的问题是:

  • 100%的机会获得20个硬币
  • 加上95%的机会获得40个硬币
  • 加上40%的机会获得300个硬币

这样的话,你必须这样做:

List<items> itemsWon = new List<item>();
float randomPercentage = Random.Range(0.0f, 1.0f);
for(int i = 0; i < Bonus.Count; i++)
{
    if (randomPercentage > Bonus[i].PERCENT)
    {
        itemsWon.Add(Bonus[i]);
    }
}

但是考虑到你的评论,我认为你只想赢得其中的一个。在这种情况下,你必须给每个项目和int值(在这种情况下比使用float 更容易),让我们说你的PERCENT属性,然后像这样做:

items itemWon;
int totalItemsPercent = 0;
for(int i = 0; i < Bonus.Count; i++)
{
    totalItemsPercent += Bonus[i].PERCENT;
}
int percentToReach = Random.Range(0, totalItemsPercent + 1);
int itemsPercentSum = 0;
for(int i = 0; i < Bonus.Count; i++)
{
    itemsPercentSum += Bonus[i].PERCENT;
    if (itemsPercentSum >= percentToReach)
    {
        itemWon = Bonus[i];
        break;
    }
}

希望这些对你有帮助。还要记住,发布你已经生成的代码总是有助于别人理解你想要实现的目标。问候,