unity抽卡限定概率脚本
时间: 2023-06-28 14:13:51 浏览: 99
Unity抽奖系统Demo
在Unity中实现抽卡的限定概率可以使用以下脚本:
```csharp
using UnityEngine;
using System.Collections.Generic;
public class CardDraw : MonoBehaviour
{
public List<Card> cardList; // 卡牌列表
public int drawCount = 10; // 抽卡次数
public float rarePercent = 0.1f; // 稀有卡概率
private List<Card> rareCardList = new List<Card>(); // 稀有卡列表
private void Start()
{
// 初始化稀有卡列表
foreach (Card card in cardList)
{
if (card.isRare)
{
rareCardList.Add(card);
}
}
}
// 抽卡函数
public void DrawCard()
{
for (int i = 0; i < drawCount; i++)
{
float random = Random.Range(0f, 1f); // 随机数
Card drawnCard; // 抽到的卡牌
if (random <= rarePercent) // 抽到稀有卡
{
int rareCardIndex = Random.Range(0, rareCardList.Count); // 在稀有卡列表中随机选择一张卡牌
drawnCard = rareCardList[rareCardIndex];
}
else // 抽到普通卡
{
int commonCardIndex = Random.Range(0, cardList.Count); // 在卡牌列表中随机选择一张卡牌
drawnCard = cardList[commonCardIndex];
}
// 显示抽到的卡牌信息
Debug.Log("第" + (i + 1) + "次抽卡:" + drawnCard.cardName + " 稀有度:" + (drawnCard.isRare ? "稀有" : "普通"));
}
}
}
public class Card
{
public string cardName; // 卡牌名称
public bool isRare; // 是否为稀有卡
public Card(string name, bool rare)
{
cardName = name;
isRare = rare;
}
}
```
在上述脚本中,我们定义了一个卡牌类 `Card`,包含卡牌名称和稀有度两个属性。然后在 `CardDraw` 类中,我们定义了卡牌列表和其他参数,包括抽卡次数、稀有卡概率等。在 `Start` 函数中,我们初始化了稀有卡列表,用于后面判断抽到的卡牌是否为稀有卡。最后在 `DrawCard` 函数中,我们使用 `Random.Range` 函数生成随机数并根据概率选择抽到的卡牌,同时输出抽到的卡牌信息。
阅读全文