private List <AirborneGameRunningItemVo> CreateItmeTimeLine(GameJumpItemPB jumpItem) { GameJumpItemRulePB itemPb = GameInfo.GetGameJumpItemRulePB(jumpItem.ReourceId, jumpItem.ItemType); GameJumpLevelRulePB levelPb = GameInfo.GetGameJumpLevelRule(jumpItem.ItemType); GameJumpAppearInfoPB AppearInto = itemPb.AppearInfo; int leftCount = jumpItem.Count; List <AirborneGameRunningItemVo> list = new List <AirborneGameRunningItemVo>(); while (leftCount > 0) { AirborneGameRunningItemVo vo = new AirborneGameRunningItemVo(); vo.Speed = itemPb.Speed; vo.Itemtype = itemPb.ItemType; vo.ResourceId = itemPb.ReourceId; vo.Resource = (ResourcePB)itemPb.Reource; if (leftCount >= levelPb.Num) { vo.Count = levelPb.Num; } else { Debug.LogError(" leftCount is not enough "); vo.Count = leftCount; } leftCount = leftCount - vo.Count; list.Add(vo); } return(list); }
private void SetAppearFrequency(List <AirborneGameRunningItemVo> list, GameJumpAppearInfoPB appearInto) { float timeline = 0; float rate = appearInto.Rate; Debug.LogError("TriggerTime rate " + rate); foreach (var v in list) { float rand = UnityEngine.Random.Range(0, rate); v.TriggerTime = timeline + rand; Debug.LogError("TriggerTime rate " + rate + " timeline " + timeline + " rand " + rand + " TriggerTime " + v.TriggerTime); timeline = timeline + rate; } return; }
private void SetAppearFixedNum(List <AirborneGameRunningItemVo> list, GameJumpAppearInfoPB appearInto) { int num = appearInto.Num; float interval = appearInto.Interval; float range = appearInto.Time;//时间范围 前多少秒 float timeline = 0; int count = list.Count; for (int i = 0; i < count; i++) { float rand = UnityEngine.Random.Range(timeline, range - (count - 1 - i) * interval); timeline = rand; list[i].TriggerTime = timeline; Debug.LogError("TriggerTime num " + num + " count " + count + " range " + range + " timeline " + timeline + " rand " + rand + " interval " + interval + " TriggerTime " + list[i].TriggerTime); timeline = timeline + interval; } }