我在使用C#统一编写游戏脚本时遇到了问题。 我想获得具有百分比的项目。
例如我下面有一个List<item> Bonus
:
ITEM |数量| PERCENT
百分比项目显示出现的机会。
如何从百分比中获得1项? 怎么在c#?细节是否足够?
由于
丹尼斯
答案 0 :(得分:3)
我理解你的问题的方式是你会:
这样你就必须做这样的事情:
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值(在这种情况下比使用浮动更容易)让我们说你的 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;
}
}
希望那些人会帮助你。另外请记住发布已生成的代码总是帮助其他人了解您尝试实现的目标。的问候,