我明白你的問題是你必須的方式:
- 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]);
}
}
但考慮您的意見,我會說,你只想要贏得這些項目的1。在這種情況下,你必須給每個項目和int值(更容易在這種情況下比工作漂浮)假設你的百分比財產,做這樣的事情:
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;
}
}
希望這些將幫助您。另外請記住,發佈已經生成的代碼總是能夠幫助其他人瞭解您嘗試實現的目標。問候,
所有項目都有百分之?您可以向我們展示您的完整列表或舉例說明您的代碼嗎? – Basvo
是的所有項目都有百分比。我還沒有編碼。我不知道它在代碼中會是什麼樣子。我只是將這個物品存放到帶有類別物品的清單- 。 –
用百分比獲得1項的含義是什麼?你需要從列表中獲得一個項目嗎? – Basvo