【游戏逻辑部分】根据data.weight权重,随机出一个data。

本文介绍了在Unity游戏中,如何根据data.weight权重来随机选择一个数据的实现思路。首先,计算每个id的权重总和并建立权重区间字典,如id1对应0-10,id2对应10-30等。然后,通过随机数与这些区间比较,实现按权重概率的选择。
摘要由CSDN通过智能技术生成

一:实现思路


计算不同id对应的权重总和并加入到权重区间字典中,例如id1的区间为0-10,id2的区间为10-30,id3的区间为30-60.....随机获取值的时候将随机值和权重区间字典中的每一个值依次做比较

二:完整代码

using UnityEngine;
using System.Collections.Generic;
using System.Linq;
 
public class Test : MonoBehaviour
{
    private Dictionary<string, int> weightDict = new Dictionary<string, int>();//权重字典
 
    private Dictionary<string, int> weightSectionDict = new Dictionary<string, int>();//权重区间字典
 
    private void Awake()
    {
        weightDict.Add("Id1", 10);
        weightDict.Add("Id2", 20);
        weightDict.Add("Id3", 30);
        weightDict.Add("Id4", 50);
        weightDict.Add("Id5", 40);
 
        //计算权重区间
        CalcWeightSection();
    }
 
    /// <summary>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值