簡體   English   中英

如何顯示具有給定百分比的項目? Unity C#

[英]How To Show Item With Item Given Percentage ? Unity C#

我在使用C#統一編寫游戲腳本時遇到問題。 我想得到一個百分比的項目。

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

項目| 數量 百分

  1. 硬幣20 100%
  2. 硬幣40 95%
  3. 硬幣300 40%
  4. 硬幣700 10%
  5. 蘋果2 60%
  6. 檸檬2 60%
  7. 橙色2 60%
  8. 木材1 90%
  9. 木材2 70%
  10. 木材3 50%
  11. 銀條1 4%
  12. 魚肉2 60%
  13. 看到1 7%
  14. 繩1 7%

百分比項目顯示出現的機會。

如何從百分比中獲得一項? 在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值 (在這種情況下比使用浮點數更容易),讓我們說說您的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;
    }
}

希望那些會幫助您。 另外請記住,發布已經生成的代碼總是可以幫助其他人了解您要實現的目標。 問候,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM