多人暂存

This commit is contained in:
lishuo 2022-12-09 16:45:54 +08:00
parent 9e2e778e12
commit dc8f8ceb80
6 changed files with 27 additions and 27 deletions

View File

@ -2,14 +2,9 @@
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
using RenderHeads.Media.AVProVideo; using RenderHeads.Media.AVProVideo;
using Assets.Scripts.Scenes.VideoRide; using Assets.Scripts.Scenes.VideoRide;
using Assets.Core;
using Assets.Scenes.Ride.Scripts.Model;
using Assets.Scenes.Ride.Scripts.Model.RiderModels; using Assets.Scenes.Ride.Scripts.Model.RiderModels;
using DG.Tweening;
using System.Collections;
namespace Assets.AR namespace Assets.AR
{ {
@ -81,16 +76,16 @@ namespace Assets.AR
protected override void Update() protected override void Update()
{ {
if (!manager.IsStart()) if (manager.IsQuit())
return; return;
timers -= Time.deltaTime; timers -= Time.deltaTime;
while (timers <= 0) while (timers <= 0)
{ {
//this.riderObjects.Clear();
foreach (var dic in manager.rideObjs) foreach (var dic in manager.rideObjs)
{ {
var item = dic.Value; var item = dic.Value;
if (dic.Key.UserId == App.CurrentUser.Id) if (dic.Key.UserId == App.CurrentUser.Id)
{ {
@ -101,7 +96,7 @@ namespace Assets.AR
item.DeltaDistance = (float)(dic.Key.EndDistance - dic.Key.PreDistance); item.DeltaDistance = (float)(dic.Key.EndDistance - dic.Key.PreDistance);
item.Route = Route; item.Route = Route;
item.VideoSync = videoPointsSync; item.VideoSync = videoPointsSync;
if(!this.arObjects.Contains(item)) if (!this.arObjects.Contains(item))
this.arObjects.Add(item); this.arObjects.Add(item);
if (!this.riderObjects.ContainsKey(item.GetInstanceID())) if (!this.riderObjects.ContainsKey(item.GetInstanceID()))
this.riderObjects.Add(item.GetInstanceID(), item); this.riderObjects.Add(item.GetInstanceID(), item);
@ -109,7 +104,7 @@ namespace Assets.AR
timers += 1f; timers += 1f;
} }
if (mainRiderObject == null) if (mainRiderObject == null || Route == null)
return; return;
var delta = Time.deltaTime; var delta = Time.deltaTime;
foreach (var obj in this.riderObjects.Values) foreach (var obj in this.riderObjects.Values)
@ -748,7 +743,9 @@ namespace Assets.AR
// } // }
//} //}
} }
public void Pause() => this.paused = true;
public void Resume() => this.paused = false;
private class VisibleRiderItem private class VisibleRiderItem
{ {

View File

@ -77,6 +77,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
WeightKg = item.WeightKg, WeightKg = item.WeightKg,
Sex = item.Sex, Sex = item.Sex,
FrameRate = item.FrameRate, FrameRate = item.FrameRate,
Speed = item.Speed
}); });
} }

View File

@ -47,6 +47,7 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
if (_contactList != null) _contactList.Clear(); if (_contactList != null) _contactList.Clear();
var list = MapUDPService.GetOnlineUsers(App.RouteIdParam); var list = MapUDPService.GetOnlineUsers(App.RouteIdParam);
var currentPlayer = list.Where(c => c.IsSelf).FirstOrDefault();
list = list.Where(c => c.Id != App.CurrentUser.Id).ToList(); list = list.Where(c => c.Id != App.CurrentUser.Id).ToList();
foreach (var item in list) foreach (var item in list)
{ {
@ -71,7 +72,7 @@ namespace Assets.Scripts.Scenes.VideoRide
var currenList = GetComponentsInChildren<ListItem>(true); var currenList = GetComponentsInChildren<ListItem>(true);
var list = MapUDPService.GetOnlineUsers(App.RouteIdParam,manager.cyclingController.recorderData.RoomId);//最新列表 var list = MapUDPService.GetOnlineUsers(App.RouteIdParam,manager.cyclingController.recorderData.RoomId);//最新列表
var currentPlayerInfo = list.Where(c => c.Id.ToString() == manager.CurrentPlayer.UserId.ToString()).FirstOrDefault(); var currentPlayerInfo = list.Where(c => c.Id.ToString() == manager.CurrentPlayer.UserId.ToString()).FirstOrDefault();
list = list.Where(c => c.Id != App.CurrentUser.Id).ToList(); list = list.Where(c => c.Id != App.CurrentUser.Id).OrderByDescending(c=>c.EndDistance).ToList();
if (currenList.Count() == 0 && list.Count() > 0) if (currenList.Count() == 0 && list.Count() > 0)
{ {
InitData(); InitData();
@ -80,9 +81,10 @@ namespace Assets.Scripts.Scenes.VideoRide
_recyclableScrollRect.ReloadData(); _recyclableScrollRect.ReloadData();
} }
} }
var currentPlayer = FindObjectOfType<VideoPlayer>(); var currentPlayer = manager.CurrentPlayer;
if (currentPlayer == null)
return;
foreach (ListItem o in currenList) foreach (ListItem o in currenList)
{ {
if (currentPlayer.UserId.ToString() == o.Id) if (currentPlayer.UserId.ToString() == o.Id)
@ -93,6 +95,7 @@ namespace Assets.Scripts.Scenes.VideoRide
var left = Math.Round((needUpdate.EndDistance - currentPlayerInfo.EndDistance) * 1000); var left = Math.Round((needUpdate.EndDistance - currentPlayerInfo.EndDistance) * 1000);
o.UpdateItem(needUpdate.Name, left.ToString() + "M", needUpdate.Id.ToString()); o.UpdateItem(needUpdate.Name, left.ToString() + "M", needUpdate.Id.ToString());
o.gameObject.SetActive(true); o.gameObject.SetActive(true);
o.transform.SetSiblingIndex((int)left);
} }
else else
{ {

View File

@ -1,7 +1,6 @@
using Assets.Scenes.Ride.Scripts; using Assets.Scenes.Ride.Scripts;
using Assets.Scenes.Ride.Scripts.Model; using Assets.Scenes.Ride.Scripts.Model;
using Assets.Scenes.Ride.Scripts.Model.CyclingModels; using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
using Assets.Scripts.Apis;
using Assets.Scripts.Apis.Models; using Assets.Scripts.Apis.Models;
using Assets.Scripts.UI.Prefab.Device; using Assets.Scripts.UI.Prefab.Device;
using GeoJSON.Net.Geometry; using GeoJSON.Net.Geometry;
@ -10,19 +9,13 @@ using RenderHeads.Media.AVProVideo;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using TurfCS; using TurfCS;
using UnityEngine; using UnityEngine;
using DG.Tweening;
using Assets.Scenes.Ride.Scripts.Model.RiderModels; using Assets.Scenes.Ride.Scripts.Model.RiderModels;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.Events; using UnityEngine.Events;
using Helper = Assets.Scenes.Ride.Scripts.Helper; using Helper = Assets.Scenes.Ride.Scripts.Helper;
using System.Collections; using System.Collections;
using FluffyUnderware.Curvy.Examples;
using FluffyUnderware.Curvy.Controllers;
using FluffyUnderware.Curvy;
using System.Reflection;
using Assets.AR; using Assets.AR;
using Assets.Core; using Assets.Core;
@ -41,7 +34,7 @@ namespace Assets.Scripts.Scenes.VideoRide
public RouteResult routeResult; public RouteResult routeResult;
public string recordId { get; set; } public string recordId { get; set; }
public DateTime startTime { get; set; } public DateTime startTime { get; set; }
public CyclingModel cyclingModel; public CyclingModel cyclingModel { get; set; }
public BaseCycling cyclingController { get; set; } public BaseCycling cyclingController { get; set; }
private double endDistance { get; set; } private double endDistance { get; set; }
GameObject infoPanel; GameObject infoPanel;
@ -324,8 +317,8 @@ namespace Assets.Scripts.Scenes.VideoRide
//设置骑行模式 //设置骑行模式
public void SetCyclingModel(CyclingModel mode) public void SetCyclingModel(CyclingModel mode)
{ {
startTime = UIManager.Now.GetDateTime(); //startTime = UIManager.Now.GetDateTime();
Debug.Log("SetCyclingModel" + selectParamModel.ContinueMark); Debug.Log("SetCyclingModel" + mode.ToString());
this.cyclingModel = mode; this.cyclingModel = mode;
switch (cyclingModel) switch (cyclingModel)
{ {
@ -340,13 +333,18 @@ namespace Assets.Scripts.Scenes.VideoRide
//开始游戏 //开始游戏
public void StartGame() public void StartGame()
{ {
if (startTime == null) //if (startTime != DateTime.MinValue)
{ {
startTime = UIManager.Now.GetDateTime(); startTime = UIManager.Now.GetDateTime();
} }
isStart = true; isStart = true;
} }
//骑行是否开始 //骑行是否开始
public bool IsReady()
{
return true;
}
//骑行是否开始
public bool IsStart() public bool IsStart()
{ {
return isStart; return isStart;

View File

@ -263,8 +263,8 @@ namespace Assets.Scripts.Scenes.VideoRide
}; };
UIManager.ShowGameRoomCountDownPanel(seconds,()=> { UIManager.ShowGameRoomCountDownPanel(seconds,()=> {
manager.StartGame(); manager.StartGame();
manager.SetCyclingModel(Assets.Scenes.Ride.Scripts.Model.CyclingModel.Single); //manager.SetCyclingModel(CyclingModel.GameRoom);
manager.SetCurrentMode(VideoGameManager.ARMode.RIDE); //manager.SetCurrentMode(VideoGameManager.ARMode.RIDE);
}); });
} }

View File

@ -124,6 +124,7 @@ namespace Assets.Scripts.Scenes.VideoRide
recorderData.PreDistance = Math.Round(preDistance, 6, MidpointRounding.AwayFromZero); recorderData.PreDistance = Math.Round(preDistance, 6, MidpointRounding.AwayFromZero);
recorderData.EndDistance = Math.Round(targetData._Distance, 6, MidpointRounding.AwayFromZero); recorderData.EndDistance = Math.Round(targetData._Distance, 6, MidpointRounding.AwayFromZero);
recorderData.RiderDatas.Add(targetData); recorderData.RiderDatas.Add(targetData);
Debug.Log(recorderData.RoomId);
//默认启用多圈 //默认启用多圈
if (isSingle && totalDistance >= mapData.TotalDistance) if (isSingle && totalDistance >= mapData.TotalDistance)
{ {