unity抽卡伪随机算法脚本
时间: 2023-07-30 10:07:09 浏览: 209
抽卡伪随机算法是一种可以控制概率的随机算法,在游戏开发中经常使用。以下是一个简单的抽卡伪随机算法脚本:
```
using UnityEngine;
using System.Collections.Generic;
public class DrawCard : MonoBehaviour
{
public List<Card> cards;
public int drawCount;
public float baseProbability;
public float probabilityIncrease;
private float currentProbability;
void Start()
{
currentProbability = baseProbability;
}
public List<Card> Draw()
{
List<Card> result = new List<Card>();
for (int i = 0; i < drawCount; i++)
{
if (Random.Range(0f, 1f) <= currentProbability)
{
//随机抽到一张卡
Card card = cards[Random.Range(0, cards.Count)];
result.Add(card);
//重置概率
currentProbability = baseProbability;
}
else
{
//没有抽到卡,增加概率
currentProbability += probabilityIncrease;
}
}
return result;
}
}
[System.Serializable]
public class Card
{
public string name;
public int rarity;
}
```
在这个脚本中,我们定义了一个DrawCard类,它包含一个Card列表、抽卡次数、基础概率和概率增加量。每次抽卡时,我们使用Random.Range方法来生成一个0到1之间的随机数,如果这个随机数小于等于当前概率,就抽到了一张卡;否则,就没有抽到卡,我们会增加当前概率。如果抽到了卡,我们会重置概率为基础概率。最后,我们返回一个包含抽到的所有卡的Card列表。
在这个脚本中,我们还定义了一个名为Card的简单类,用于表示一张卡的名称和稀有度。你可以根据自己的需求扩展这个类。
使用这个脚本,你需要将所有可抽取的卡存储在cards列表中,然后调用Draw方法来进行抽卡。例如,你可以在一个按钮的OnClick事件中调用Draw方法,并将结果显示在UI中。
阅读全文