我基本上有一個在遊戲中填充區域的腳本,您可以添加多個對象來填充區域,並且它們都有一個從0.00到1.00的重生機會值。轉換多個百分比以適應100%
我試圖將這些產卵機會轉換爲適合100%,以便1.00與1.00的3個對象將轉換爲0.33%或3個對象與50%也將轉換爲0.33%。或者最後,3個對象:0.4,0.4,0.2 - 將轉換爲:40,40,20(我希望這是正確的)。
我想,可能是在錯誤的方向,這在當下:
void GetRanges()
{
for (int i = 0; i < clutterObjects.Length; i++)
{
temp += clutterObjects[i].spawnChance;
}
if (temp > 1.0)
{
temp = temp - 1.0f;
for (int i = 0; i < clutterObjects.Length; i++)
{
clutterObjects[i].spawnChance -=
clutterObjects[i].spawnChance * temp;
}
}
else
{
temp = Mathf.Abs(temp - 1.0f);
for (int i = 0; i < clutterObjects.Length; i++)
{
clutterObjects[i].spawnChance +=
clutterObjects[i].spawnChance * temp;
}
}
Spawn();
}
任何人都知道如何去了解這一點,還是一個更好的解決方案可能是什麼。
爲什麼要3個對象,100%轉化爲同樣的事情,3名對象的50% ? – nhgrif
因爲他們應該轉換,以便所有加在一起等於100%(我可能在想這個錯誤) –
好吧,那麼「機會值」是一個重量?具有0.5的物體應該產生兩倍於具有0.25的物體的頻率?但是不管權重的總和是多少,百分比的總和應該總是100%。 – nhgrif