diff --git a/Assets/AR/ARTrainingController.cs b/Assets/AR/ARTrainingController.cs index 5c02862e..a93f8d26 100644 --- a/Assets/AR/ARTrainingController.cs +++ b/Assets/AR/ARTrainingController.cs @@ -2,14 +2,9 @@ using System.Linq; using System.Collections.Generic; using UnityEngine; -using UnityEngine.UI; using RenderHeads.Media.AVProVideo; using Assets.Scripts.Scenes.VideoRide; -using Assets.Core; -using Assets.Scenes.Ride.Scripts.Model; using Assets.Scenes.Ride.Scripts.Model.RiderModels; -using DG.Tweening; -using System.Collections; namespace Assets.AR { @@ -81,16 +76,16 @@ namespace Assets.AR protected override void Update() { - if (!manager.IsStart()) + if (manager.IsQuit()) return; + timers -= Time.deltaTime; while (timers <= 0) { - //this.riderObjects.Clear(); foreach (var dic in manager.rideObjs) { - + var item = dic.Value; if (dic.Key.UserId == App.CurrentUser.Id) { @@ -101,7 +96,7 @@ namespace Assets.AR item.DeltaDistance = (float)(dic.Key.EndDistance - dic.Key.PreDistance); item.Route = Route; item.VideoSync = videoPointsSync; - if(!this.arObjects.Contains(item)) + if (!this.arObjects.Contains(item)) this.arObjects.Add(item); if (!this.riderObjects.ContainsKey(item.GetInstanceID())) this.riderObjects.Add(item.GetInstanceID(), item); @@ -109,7 +104,7 @@ namespace Assets.AR timers += 1f; } - if (mainRiderObject == null) + if (mainRiderObject == null || Route == null) return; var delta = Time.deltaTime; 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 { diff --git a/Assets/Scripts/Scenes/Ride/Model/CyclingModels/GameModel.cs b/Assets/Scripts/Scenes/Ride/Model/CyclingModels/GameModel.cs index 5a2b0fa5..bcd64c42 100644 --- a/Assets/Scripts/Scenes/Ride/Model/CyclingModels/GameModel.cs +++ b/Assets/Scripts/Scenes/Ride/Model/CyclingModels/GameModel.cs @@ -77,6 +77,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels WeightKg = item.WeightKg, Sex = item.Sex, FrameRate = item.FrameRate, + Speed = item.Speed }); } diff --git a/Assets/Scripts/Scenes/VideoRide/NearVideoPlayerList.cs b/Assets/Scripts/Scenes/VideoRide/NearVideoPlayerList.cs index 4e9d4f13..55c854d7 100644 --- a/Assets/Scripts/Scenes/VideoRide/NearVideoPlayerList.cs +++ b/Assets/Scripts/Scenes/VideoRide/NearVideoPlayerList.cs @@ -47,6 +47,7 @@ namespace Assets.Scripts.Scenes.VideoRide { if (_contactList != null) _contactList.Clear(); var list = MapUDPService.GetOnlineUsers(App.RouteIdParam); + var currentPlayer = list.Where(c => c.IsSelf).FirstOrDefault(); list = list.Where(c => c.Id != App.CurrentUser.Id).ToList(); foreach (var item in list) { @@ -71,7 +72,7 @@ namespace Assets.Scripts.Scenes.VideoRide var currenList = GetComponentsInChildren(true); var list = MapUDPService.GetOnlineUsers(App.RouteIdParam,manager.cyclingController.recorderData.RoomId);//最新列表 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) { InitData(); @@ -80,9 +81,10 @@ namespace Assets.Scripts.Scenes.VideoRide _recyclableScrollRect.ReloadData(); } } - - var currentPlayer = FindObjectOfType(); - + + var currentPlayer = manager.CurrentPlayer; + if (currentPlayer == null) + return; foreach (ListItem o in currenList) { if (currentPlayer.UserId.ToString() == o.Id) @@ -93,6 +95,7 @@ namespace Assets.Scripts.Scenes.VideoRide var left = Math.Round((needUpdate.EndDistance - currentPlayerInfo.EndDistance) * 1000); o.UpdateItem(needUpdate.Name, left.ToString() + "M", needUpdate.Id.ToString()); o.gameObject.SetActive(true); + o.transform.SetSiblingIndex((int)left); } else { diff --git a/Assets/Scripts/Scenes/VideoRide/VideoGameManager.cs b/Assets/Scripts/Scenes/VideoRide/VideoGameManager.cs index 91c0f715..b84ef168 100644 --- a/Assets/Scripts/Scenes/VideoRide/VideoGameManager.cs +++ b/Assets/Scripts/Scenes/VideoRide/VideoGameManager.cs @@ -1,7 +1,6 @@ using Assets.Scenes.Ride.Scripts; using Assets.Scenes.Ride.Scripts.Model; using Assets.Scenes.Ride.Scripts.Model.CyclingModels; -using Assets.Scripts.Apis; using Assets.Scripts.Apis.Models; using Assets.Scripts.UI.Prefab.Device; using GeoJSON.Net.Geometry; @@ -10,19 +9,13 @@ using RenderHeads.Media.AVProVideo; using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using TurfCS; using UnityEngine; -using DG.Tweening; using Assets.Scenes.Ride.Scripts.Model.RiderModels; using UnityEngine.EventSystems; using UnityEngine.Events; using Helper = Assets.Scenes.Ride.Scripts.Helper; using System.Collections; -using FluffyUnderware.Curvy.Examples; -using FluffyUnderware.Curvy.Controllers; -using FluffyUnderware.Curvy; -using System.Reflection; using Assets.AR; using Assets.Core; @@ -41,7 +34,7 @@ namespace Assets.Scripts.Scenes.VideoRide public RouteResult routeResult; public string recordId { get; set; } public DateTime startTime { get; set; } - public CyclingModel cyclingModel; + public CyclingModel cyclingModel { get; set; } public BaseCycling cyclingController { get; set; } private double endDistance { get; set; } GameObject infoPanel; @@ -324,8 +317,8 @@ namespace Assets.Scripts.Scenes.VideoRide //设置骑行模式 public void SetCyclingModel(CyclingModel mode) { - startTime = UIManager.Now.GetDateTime(); - Debug.Log("SetCyclingModel" + selectParamModel.ContinueMark); + //startTime = UIManager.Now.GetDateTime(); + Debug.Log("SetCyclingModel" + mode.ToString()); this.cyclingModel = mode; switch (cyclingModel) { @@ -340,13 +333,18 @@ namespace Assets.Scripts.Scenes.VideoRide //开始游戏 public void StartGame() { - if (startTime == null) + //if (startTime != DateTime.MinValue) { startTime = UIManager.Now.GetDateTime(); } isStart = true; } //骑行是否开始 + public bool IsReady() + { + return true; + } + //骑行是否开始 public bool IsStart() { return isStart; diff --git a/Assets/Scripts/Scenes/VideoRide/VideoLoading.cs b/Assets/Scripts/Scenes/VideoRide/VideoLoading.cs index 0e8ae991..ac3b2346 100644 --- a/Assets/Scripts/Scenes/VideoRide/VideoLoading.cs +++ b/Assets/Scripts/Scenes/VideoRide/VideoLoading.cs @@ -263,8 +263,8 @@ namespace Assets.Scripts.Scenes.VideoRide }; UIManager.ShowGameRoomCountDownPanel(seconds,()=> { manager.StartGame(); - manager.SetCyclingModel(Assets.Scenes.Ride.Scripts.Model.CyclingModel.Single); - manager.SetCurrentMode(VideoGameManager.ARMode.RIDE); + //manager.SetCyclingModel(CyclingModel.GameRoom); + //manager.SetCurrentMode(VideoGameManager.ARMode.RIDE); }); } diff --git a/Assets/Scripts/Scenes/VideoRide/VideoPlayer.cs b/Assets/Scripts/Scenes/VideoRide/VideoPlayer.cs index 6a511f62..ace30cb1 100644 --- a/Assets/Scripts/Scenes/VideoRide/VideoPlayer.cs +++ b/Assets/Scripts/Scenes/VideoRide/VideoPlayer.cs @@ -124,6 +124,7 @@ namespace Assets.Scripts.Scenes.VideoRide recorderData.PreDistance = Math.Round(preDistance, 6, MidpointRounding.AwayFromZero); recorderData.EndDistance = Math.Round(targetData._Distance, 6, MidpointRounding.AwayFromZero); recorderData.RiderDatas.Add(targetData); + Debug.Log(recorderData.RoomId); //默认启用多圈 if (isSingle && totalDistance >= mapData.TotalDistance) {