如何显示项目与项目给出百分比?团结c#
本文关键字:项目 百分比 团结 显示 何显示 | 更新日期: 2023-09-27 18:17:16
我在使用c#编写unity游戏脚本时遇到了问题。我想买百分比的商品。
例如,我在下面有一个List<item> Bonus
:
项目|数量|百分比
- 币20 100%
- 硬币40 95%
- 硬币300 40%
- 币700 10%
- apple 2 60%
- 柠檬2 60%
- 橙色2 60%
- 木材1 90%
- 木材2 70%
- 木材3 50%
- 银条1 4%
- 鱼肉2 60%
- Saw 17 %
- 绳索1 7%
百分比项显示出现的机会。
如何从百分比中获得1个项目?它在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;
}
}
希望这些对你有帮助。还要记住,发布你已经生成的代码总是有助于别人理解你想要实现的目标。问候,