From 7744eec8471c999a7348f41919d06233e388ec81 Mon Sep 17 00:00:00 2001 From: lishuo Date: Thu, 15 Apr 2021 10:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=B4=E4=BE=A3=E9=AA=91=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/Images/Ride/login_delete.png | Bin 0 -> 1259 bytes .../Images/Ride/login_delete.png.meta | 104 + .../UI/Prefab/Ride/MiniMapPlayer.prefab | 121 + .../Prefab/Ride/MiniMapPlayer.prefab.meta} | 5 +- .../UI/Prefab/Ride/ReviewItem.prefab | 394 + .../UI/Prefab/Ride/ReviewItem.prefab.meta | 7 + .../UI/Prefab/Ride/ReviewPlayer.prefab | 111 + .../UI/Prefab/Ride/ReviewPlayer.prefab.meta | 7 + .../UI/Prefab/Ride/SelectPlayerItem.prefab | 377 + .../Prefab/Ride/SelectPlayerItem.prefab.meta | 7 + Assets/Scenes/Ride/Ride.unity | 29938 +++++++++------- Assets/Scenes/Ride/Scripts/AbstractPlayer.cs | 35 +- .../Scenes/Ride/Scripts/CyclingController.cs | 45 +- .../Ride/Scripts/InitMiniMapProvider.cs | 11 +- .../Ride/Scripts/LoadingPanelController.cs | 17 +- .../Ride/Scripts/MiniMapPlayerController.cs | 32 + ...s.meta => MiniMapPlayerController.cs.meta} | 2 +- .../{NearListFactory.cs => NearByFactory.cs} | 8 +- ...tFactory.cs.meta => NearByFactory.cs.meta} | 0 .../Ride/Scripts/OtherPlayerController.cs | 31 +- .../Scenes/Ride/Scripts/PlayerController.cs | 16 +- .../Scenes/Ride/Scripts/PlayerItemFactory.cs | 42 - Assets/Scenes/Ride/Scripts/PubCommData.cs | 29 - Assets/Scenes/Ride/Scripts/ReviewFactory.cs | 110 + ...mFactory.cs.meta => ReviewFactory.cs.meta} | 2 +- .../Scenes/Ride/Scripts/ReviewItemScript.cs | 55 + .../Ride/Scripts/ReviewItemScript.cs.meta | 11 + Assets/Scenes/Ride/Scripts/RouteController.cs | 2 +- .../Ride/Scripts/SelectPlayerFactory.cs | 176 + .../Ride/Scripts/SelectPlayerFactory.cs.meta | 11 + .../Ride/Scripts/SelectPlayerItemScript.cs | 65 + .../Scripts/SelectPlayerItemScript.cs.meta | 11 + .../Ride/Scripts/SeletedPlayerScript.cs | 66 + .../Ride/Scripts/SeletedPlayerScript.cs.meta | 11 + Assets/Scenes/Ride/Scripts/SingleUIManager.cs | 195 +- Assets/Scripts/Apis/MapApi.cs | 6 + Assets/Scripts/Apis/Models/MapRouteRanking.cs | 85 + .../Apis/Models/MapRouteRanking.cs.meta | 11 + .../Apis/Models/MapRouteRankingList.cs | 14 + .../Apis/Models/MapRouteRankingList.cs.meta | 11 + Assets/Scripts/App.cs | 4 +- Assets/Scripts/UIManager.cs | 49 +- 42 files changed, 18737 insertions(+), 13497 deletions(-) create mode 100644 Assets/Resources/Images/Ride/login_delete.png create mode 100644 Assets/Resources/Images/Ride/login_delete.png.meta create mode 100644 Assets/Resources/UI/Prefab/Ride/MiniMapPlayer.prefab rename Assets/Resources/{Sound.meta => UI/Prefab/Ride/MiniMapPlayer.prefab.meta} (57%) create mode 100644 Assets/Resources/UI/Prefab/Ride/ReviewItem.prefab create mode 100644 Assets/Resources/UI/Prefab/Ride/ReviewItem.prefab.meta create mode 100644 Assets/Resources/UI/Prefab/Ride/ReviewPlayer.prefab create mode 100644 Assets/Resources/UI/Prefab/Ride/ReviewPlayer.prefab.meta create mode 100644 Assets/Resources/UI/Prefab/Ride/SelectPlayerItem.prefab create mode 100644 Assets/Resources/UI/Prefab/Ride/SelectPlayerItem.prefab.meta create mode 100644 Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs rename Assets/Scenes/Ride/Scripts/{PubCommData.cs.meta => MiniMapPlayerController.cs.meta} (83%) rename Assets/Scenes/Ride/Scripts/{NearListFactory.cs => NearByFactory.cs} (95%) rename Assets/Scenes/Ride/Scripts/{NearListFactory.cs.meta => NearByFactory.cs.meta} (100%) delete mode 100644 Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs delete mode 100644 Assets/Scenes/Ride/Scripts/PubCommData.cs create mode 100644 Assets/Scenes/Ride/Scripts/ReviewFactory.cs rename Assets/Scenes/Ride/Scripts/{PlayerItemFactory.cs.meta => ReviewFactory.cs.meta} (83%) create mode 100644 Assets/Scenes/Ride/Scripts/ReviewItemScript.cs create mode 100644 Assets/Scenes/Ride/Scripts/ReviewItemScript.cs.meta create mode 100644 Assets/Scenes/Ride/Scripts/SelectPlayerFactory.cs create mode 100644 Assets/Scenes/Ride/Scripts/SelectPlayerFactory.cs.meta create mode 100644 Assets/Scenes/Ride/Scripts/SelectPlayerItemScript.cs create mode 100644 Assets/Scenes/Ride/Scripts/SelectPlayerItemScript.cs.meta create mode 100644 Assets/Scenes/Ride/Scripts/SeletedPlayerScript.cs create mode 100644 Assets/Scenes/Ride/Scripts/SeletedPlayerScript.cs.meta create mode 100644 Assets/Scripts/Apis/Models/MapRouteRanking.cs create mode 100644 Assets/Scripts/Apis/Models/MapRouteRanking.cs.meta create mode 100644 Assets/Scripts/Apis/Models/MapRouteRankingList.cs create mode 100644 Assets/Scripts/Apis/Models/MapRouteRankingList.cs.meta diff --git a/Assets/Resources/Images/Ride/login_delete.png b/Assets/Resources/Images/Ride/login_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..625728e236a36bfd07985c5c45193d69644b91b4 GIT binary patch literal 1259 zcmVuaR0wBEflbI#1p&a91KR4P|K&t$SS!_DO6(XZn;7LSsbFZX44 zw@D+B`T5HMS2I8VejJ7!3Byo4x8Z82K6mai@Ud`4QHU8w9UfGM zm#bk6BTQIFK*|?n(y_3x{1+Vl;=U2&N)^x=`56IG>+5x6tm8;VMn+|5=#VrTk5!qm zoUsb`_F7#ZktB*n)6;h4rcR2I}Pc~nWY!-FiHl;WC>-q@%&DDML-E`C^Qx7#-%FUN7%z+3((DOW(H@`&(Oo1T!-yn*c0Yw*LCDG81iX{x(Ds z%|Dvs#^9hSvTkUQo}On`VT_RNNJ_&AxZ(*Yh(urFTpuIc#MlwBPhB!lZ*=l)Hk-S? zw)VXiXqv0f!TIwmSCRIwK#EAyRY3?NwNN^8qqkRm1n1XyLZ?>;)#^%Ne?R;aLi8M? z>nFG0{SMqI{wI(CDLlEhR&N-#*z4Erzd_=Yh);$i^gLhk`Mew)yu#I^xl+#goQ#hj zmQJUmb>wu;G1k!c2WB$u_ABlAcyiXKTd_0JLhFRMd0T1((ue>z-z4Xw z&ymj`MvC&<<@~nfZ{nrlA3uHyT=Bd1UR`zA)jl6@Ax*wU{Os9Njhgo{ICw~33Ocf{ zgu3BRcaS5#u2nQQckvcJ`X1lJOg+=sUOrD|FS1uvz>=)b#`9$L{{7pZCVg=B?4>G> z{}T+8r totalClimb; } public int UserId { get => userId; } public bool IsStart { get => isStart; } public double Speed { get => speed; } @@ -78,18 +80,21 @@ namespace Assets.Scenes.Ride.Scripts public void SetStart() { isStart = true; + mainController.isStart = true; startTime = DateTime.Now; } //继续骑行 public void SetContinue() { isStart = true; + mainController.isStart = true; } //暂停骑行 public void SetPause() { isStart = false; - characterAnimator.SetBool("IsRide", false); + mainController.isStart = false; + //characterAnimator.SetBool("IsRide", false); } //退出或者完成骑行 public void SetQuit() @@ -108,10 +113,7 @@ namespace Assets.Scenes.Ride.Scripts { Excute(); } - private void FixedUpdate() - { - - } + #region 骑行逻辑 //初始化骑行数据 protected CyclingController mainController; @@ -120,10 +122,11 @@ namespace Assets.Scenes.Ride.Scripts { characterAnimator = GetComponentInChildren(); mainController = transform.parent.GetComponent(); - //map = FindObjectOfType(); + map = transform.parent.Find("Map").GetComponent(); mapData = mainController.GetMapData();//获取路书信息 nextlatlong = new Vector2d(mapData.List[0].Point[0], mapData.List[0].Point[1]);//初始化人物位置 TODO加上之前骑行距离 cyclingExcutor = mainController.cyclingController; + isStart = mainController.isStart; } protected virtual void Excute() @@ -141,11 +144,17 @@ namespace Assets.Scenes.Ride.Scripts { ComputeNextSlope();//计算下一个坡度相关数据 SendTcp(); - if (isStart) + if (mainController.isStart) { ticks++; + //计算累计爬升 + var diff = mapData.List[CurrentIndex].Elevation - elevation; + if (diff > 0) + { + totalClimb += diff; + } Compute();//接受蓝牙设备数据计算 - characterAnimator.SetBool("IsRide", false);//初始化动画状态 + //characterAnimator.SetBool("IsRide", false);//初始化动画状态 if (totalDistance <= mapData.TotalDistance) { //数据处理 @@ -157,7 +166,7 @@ namespace Assets.Scenes.Ride.Scripts //动画控制 if (distance > 0) { - characterAnimator.SetBool("IsRide", true);//开始移动动画 + //characterAnimator.SetBool("IsRide", true);//开始移动动画 StartCoroutine(MoveTo());//移动 //transform.localPosition = nextPos; @@ -166,7 +175,7 @@ namespace Assets.Scenes.Ride.Scripts else { totalDistance = mapData.TotalDistance; - characterAnimator.SetBool("ReachEnd", true);//到达终点 + //characterAnimator.SetBool("ReachEnd", true);//到达终点 //Task.Run(() => { });//异步上传数据 Upload(); isStart = false; @@ -187,7 +196,7 @@ namespace Assets.Scenes.Ride.Scripts //totalDistance += distance; } //当前用户调用来上传骑行记录 - protected virtual void Upload() + public virtual void Upload() { } #endregion @@ -226,12 +235,12 @@ namespace Assets.Scenes.Ride.Scripts } public int CurrentIndex; + private int index; //当前距离所在的海拔/坡度/距离 下一个点的坡度以及剩余距离 void ComputeNextSlope() { double sumDistance = 0; var pointList = mapData.List; - int index = 0; for (int i = 0; i < pointList.Count; i++) { sumDistance += pointList[i].Distance; diff --git a/Assets/Scenes/Ride/Scripts/CyclingController.cs b/Assets/Scenes/Ride/Scripts/CyclingController.cs index 021800e7..15d98fb0 100644 --- a/Assets/Scenes/Ride/Scripts/CyclingController.cs +++ b/Assets/Scenes/Ride/Scripts/CyclingController.cs @@ -17,15 +17,16 @@ public class CyclingController : DeviceServiceMonoBase public AbstractMap map; public GameObject player; public GameObject UIObject; + public SelectParamModel selectParamModel; #region 参数 private MapDataModel mapData;//当前路书数据 private double[] coordiantes;//当前地图中心 private int currentUserId;//当前选中的用户id - private bool isStart;//当前游戏是否开始 + public bool isStart;//当前游戏是否开始 private DateTime startTime;//开始时间 - private bool initComplete; - private CyclingModel cyclingModel;//当前骑行模式 + + public CyclingModel cyclingModel;//当前骑行模式 public BaseCycling cyclingController { get; set; } private int RouteId; private MapApi mapApi; @@ -34,8 +35,8 @@ public class CyclingController : DeviceServiceMonoBase void Awake() { - initComplete = false; cyclingModel = CyclingModel.Single; + InitParam(); //获取路书信息 mapApi = new MapApi(); RouteId = App.RouteIdParam > 0? App.RouteIdParam : 376; @@ -61,19 +62,19 @@ public class CyclingController : DeviceServiceMonoBase cyclingController = new SingleModel(mapRoute); //cyclingModel.OpenCyclingWindow(); break; - //case CyclingModel.Online: - // CyclingModel = new OnlineModel(Route, param); - // //cyclingModel.OpenCyclingWindow(); - // break; - //case CyclingModel.Review: - // if (param.RankingsId.Count == 0) - // { - // UIHelper.ShowError(View.GetLang("MapboxController.PSelectARider"));//请选择骑行人 - // return; - // } - // CyclingModel = new ReviewModel(Route, param); - // //cyclingModel.OpenCyclingWindow(); - // break; + //case CyclingModel.Online: + // CyclingModel = new OnlineModel(Route, param); + // cyclingModel.OpenCyclingWindow(); + // break; + //case CyclingModel.Review: + // if (selectParamModel.RankingsId.Count == 0) + // { + // //TODO:弹窗请选择跟随骑行的人 + // return; + // } + // CyclingModel = new ReviewModel(Route, param); + //cyclingModel.OpenCyclingWindow(); + // break; //case Model.CyclingModel.Competition: // CyclingModel = new CompetitionModel(Route, param); // //cyclingModel.OpenCyclingWindow(); @@ -90,7 +91,6 @@ public class CyclingController : DeviceServiceMonoBase { mapData = result; coordiantes = result.List[0].Point;//TODO计算当前用户所处的位置 - initComplete = true; Init(); } else @@ -98,11 +98,18 @@ public class CyclingController : DeviceServiceMonoBase throw new System.Exception("fail to get route data"); } } + + private void InitParam() + { + selectParamModel = new SelectParamModel(); + selectParamModel.RouteId = App.RouteIdParam; + selectParamModel.RankingsId = new List(); + } private void Init() { //加载人物和地图以及UI界面 map.gameObject.SetActive(true); - player.SetActive(true); + //player.SetActive(true); UIObject.SetActive(true); } diff --git a/Assets/Scenes/Ride/Scripts/InitMiniMapProvider.cs b/Assets/Scenes/Ride/Scripts/InitMiniMapProvider.cs index cbe7a4f7..d8ae45bd 100644 --- a/Assets/Scenes/Ride/Scripts/InitMiniMapProvider.cs +++ b/Assets/Scenes/Ride/Scripts/InitMiniMapProvider.cs @@ -137,14 +137,15 @@ namespace Assets.Scenes.Ride.Scripts var lineRender = _mipMapRoute.AddComponent(); lineRender.material = new Material(Shader.Find("Sprites/Default")); var dat = feat.Points[0]; - lineRender.endColor = Color.blue; - lineRender.startColor = Color.blue; + lineRender.endColor = Color.white; + lineRender.startColor = Color.white; //设置宽度 - lineRender.startWidth = 0.6f; - lineRender.endWidth = 0.6f; + lineRender.startWidth = 1f; + lineRender.endWidth = 1f; lineRender.positionCount = dat.Count; lineRender.SetPositions(feat.Points[0].ToArray()); - lineRender.numCornerVertices = 90; + lineRender.numCornerVertices = 0; + lineRender.loop = false; _mipMapRoute.layer = 9; } #endregion diff --git a/Assets/Scenes/Ride/Scripts/LoadingPanelController.cs b/Assets/Scenes/Ride/Scripts/LoadingPanelController.cs index a16e7256..ba43256b 100644 --- a/Assets/Scenes/Ride/Scripts/LoadingPanelController.cs +++ b/Assets/Scenes/Ride/Scripts/LoadingPanelController.cs @@ -23,12 +23,20 @@ namespace Assets.Scenes.Ride.Scripts _map.OnTileFinished += _map_OnTileFinished; _map.OnEditorPreviewEnabled += OnEditorPreviewEnabled; _map.OnEditorPreviewDisabled += OnEditorPreviewDisabled; + _map.OnUpdated += _map_OnUpdated; + + } + + private void _map_OnUpdated() + { + //Debug.Log("_map_OnUpdated"); } private void _map_OnTileFinished(global::Mapbox.Unity.MeshGeneration.Data.UnityTile obj) { transform.gameObject.SetActive(false); + Debug.Log("_map_OnTileFinished"); } void _map_OnInitialized() @@ -41,10 +49,9 @@ namespace Assets.Scenes.Ride.Scripts if (this == null) return; - if (s == ModuleState.Finished) { - transform.gameObject.SetActive(false); + //transform.gameObject.SetActive(false); } else if (s == ModuleState.Working) { @@ -59,12 +66,14 @@ namespace Assets.Scenes.Ride.Scripts void OnEditorPreviewEnabled() { - transform.gameObject.SetActive(false); + //transform.gameObject.SetActive(false); + Debug.Log("OnEditorPreviewEnabled"); } void OnEditorPreviewDisabled() { - transform.gameObject.SetActive(true); + //transform.gameObject.SetActive(true); + Debug.Log("OnEditorPreviewDisabled"); } diff --git a/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs b/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs new file mode 100644 index 00000000..17480177 --- /dev/null +++ b/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs @@ -0,0 +1,32 @@ +using Mapbox.Unity.Map; +using UnityEngine; + +namespace Assets.Scenes.Ride.Scripts +{ + public class MiniMapPlayerController: MonoBehaviour + { + private AbstractPlayer _player; + private AbstractMap _map; + private void Awake() + { + _map = transform.parent.Find("MiniMap").GetComponent(); + } + public void SetController(AbstractPlayer player) + { + _player = player; + } + float t = 1f; + private void Update() + { + t -= Time.deltaTime; + while (t < 0) + { + if (_player != null) + { + transform.localPosition = _map.GeoToWorldPosition(_player.Nextlatlong); + } + t = 1; + } + } + } +} diff --git a/Assets/Scenes/Ride/Scripts/PubCommData.cs.meta b/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs.meta similarity index 83% rename from Assets/Scenes/Ride/Scripts/PubCommData.cs.meta rename to Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs.meta index 71614100..e0b87494 100644 --- a/Assets/Scenes/Ride/Scripts/PubCommData.cs.meta +++ b/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e19a9a72e39c8da4489a110f68ff2dc1 +guid: 287bd44099b0d56478ff1fe696796816 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scenes/Ride/Scripts/NearListFactory.cs b/Assets/Scenes/Ride/Scripts/NearByFactory.cs similarity index 95% rename from Assets/Scenes/Ride/Scripts/NearListFactory.cs rename to Assets/Scenes/Ride/Scripts/NearByFactory.cs index d12a8c7d..649d9f2b 100644 --- a/Assets/Scenes/Ride/Scripts/NearListFactory.cs +++ b/Assets/Scenes/Ride/Scripts/NearByFactory.cs @@ -1,18 +1,13 @@ using Assets.Scenes.Ride.Scripts.Model; using Assets.Scripts; -using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using UnityEngine; -using UnityEngine.Assertions; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Assets.Scenes.Ride.Scripts { - public class NearListFactory : MonoBehaviour + public class NearByFactory : MonoBehaviour { PlayerController playerController; private GameObject nearByItem; @@ -33,7 +28,6 @@ namespace Assets.Scenes.Ride.Scripts playerController = FindObjectOfType(); nearByItem = Resources.Load("UI/Prefab/Ride/NearbyItem"); nearByMajorItem = Resources.Load("UI/Prefab/Ride/NearbyMajorItem"); - Assert.IsNotNull(nearByItem); scroll = transform.parent.parent.gameObject; if (scroll != null) { diff --git a/Assets/Scenes/Ride/Scripts/NearListFactory.cs.meta b/Assets/Scenes/Ride/Scripts/NearByFactory.cs.meta similarity index 100% rename from Assets/Scenes/Ride/Scripts/NearListFactory.cs.meta rename to Assets/Scenes/Ride/Scripts/NearByFactory.cs.meta diff --git a/Assets/Scenes/Ride/Scripts/OtherPlayerController.cs b/Assets/Scenes/Ride/Scripts/OtherPlayerController.cs index c6255fdd..bb0c39e7 100644 --- a/Assets/Scenes/Ride/Scripts/OtherPlayerController.cs +++ b/Assets/Scenes/Ride/Scripts/OtherPlayerController.cs @@ -1,21 +1,40 @@ -using System; +using Assets.Scenes.Ride.Scripts.Model; +using System; namespace Assets.Scenes.Ride.Scripts { public class OtherPlayerController : AbstractPlayer { + public string[] record; + public ReviewItemScript _reviewItemScript; + public PlayerController _playerController; protected override void Init() { base.Init(); - SetStart();//自动开始 } protected override void Compute() { - power = 900;//功率 - speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight); - distance = Math.Round(speed / 3600, 6); - totalDistance += distance; + if (ticks < record.Length) + { + var data = TargetData.Read(record[ticks-1]); + distance = data._Speed/3600; + totalDistance = data._Distance; + } + else + { + var data = TargetData.Read(record[record.Length - 1]); + distance = data._Speed / 3600; + totalDistance = data._Distance; + } + var diff = Math.Round(totalDistance - _playerController.TotalDistance, 3) * 1000; + _reviewItemScript.SetDistance(diff); } + public void SetController(ReviewItemScript reviewItemScript, PlayerController playerController) + { + _reviewItemScript = reviewItemScript; + _playerController = playerController; + } + } } \ No newline at end of file diff --git a/Assets/Scenes/Ride/Scripts/PlayerController.cs b/Assets/Scenes/Ride/Scripts/PlayerController.cs index 4723cb83..6d109290 100644 --- a/Assets/Scenes/Ride/Scripts/PlayerController.cs +++ b/Assets/Scenes/Ride/Scripts/PlayerController.cs @@ -29,14 +29,16 @@ namespace Assets.Scenes.Ride.Scripts heartRate = mainController.UpDateHeart()??0; power = mainController.UpdatePower(); cadance = mainController.UpdateCadence(); -#if UNITY_EDITOR + weight = App.CurrentUser.Weight; + bicycleWeight = App.CurrentUser.BicycleWeight; + power = 2000;//测试功率 -#endif + speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight); distance = mainController.UpdateDistance(speed); totalDistance += distance; //记录骑行数据 -#if UNITY_EDITOR + var recorderData = cyclingExcutor.recorderData; targetData = new TargetData { @@ -50,21 +52,21 @@ namespace Assets.Scenes.Ride.Scripts _Lon = nextlatlong.y }; recorderData.RiderDatas.Add(targetData); -#endif + } protected override void SendTcp() { mainController.cyclingController.Run(null); } //上传数据 - protected override void Upload() + public override void Upload() { -#if UNITY_EDITOR + string imageFileName = base.CaptureCamera(Camera.main, new Rect(Screen.width * 0f, Screen.height * 0f, Screen.width * 0.5f, Screen.height * 0.5f)); cyclingExcutor.recorderData.IsCompleted = totalDistance == mapData.TotalDistance; cyclingExcutor.recorderData.EndDistance = totalDistance; cyclingExcutor.recorderData.SaveData(cyclingExcutor.Mode,null, imageFileName); -#endif + } #endregion } diff --git a/Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs b/Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs deleted file mode 100644 index afe51d0e..00000000 --- a/Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; -using UnityEngine.Assertions; - -namespace Assets.Scenes.Ride.Scripts -{ - public class NearByItemFactory : MonoBehaviour - { - private GameObject nearByItem; - // Start is called before the first frame update - void Start() - { - nearByItem = Resources.Load("UI/Prefab/Ride/NearbyItem"); - Assert.IsNotNull(nearByItem); - } - float t = 1; - // Update is called once per frame - void Update() - { - t -= Time.deltaTime; - while (t < 0) - { - //var nearList = MapUDPService.GetNearRiderData(1, 20, new double[] { playerController.Nextlatlong.x, playerController.Nextlatlong.y }); - //Debug.Log(nearList.Count()); - GameObject newObj; // Create GameObject instance - for (int i = 0; i < 5; i++) - { - // Create new instances of our prefab until we've created as many as we specified - newObj = (GameObject)Instantiate(nearByItem, transform); - var nearByItemscript = newObj.GetComponent(); - nearByItemscript.setName(""); - nearByItemscript.setRatio(""); - nearByItemscript.setSpeed(""); - nearByItemscript.setHead(""); - t = 1; - } - } - } - } -} diff --git a/Assets/Scenes/Ride/Scripts/PubCommData.cs b/Assets/Scenes/Ride/Scripts/PubCommData.cs deleted file mode 100644 index b6b5a0d7..00000000 --- a/Assets/Scenes/Ride/Scripts/PubCommData.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Assets.Scenes.Ride.Scripts.Model; - -public class PubCommData -{ - public static t_user CurrentUser; - - public static int PlanId;//当前训练id - - public static string sp = ""; - - public static string po = ""; - - public static string SearchKeyword = ""; - - /// - /// lat lng - /// - public static double[] location; - /// - /// 当前位置 - /// - public static string Address; - - public static double routeDistance; - /// - /// en,zh-CN - /// - public static string Lauguage = ""; -} \ No newline at end of file diff --git a/Assets/Scenes/Ride/Scripts/ReviewFactory.cs b/Assets/Scenes/Ride/Scripts/ReviewFactory.cs new file mode 100644 index 00000000..20a348a4 --- /dev/null +++ b/Assets/Scenes/Ride/Scripts/ReviewFactory.cs @@ -0,0 +1,110 @@ +using Assets.Scenes.Ride.Scripts.Model; +using Assets.Scripts.Apis; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.UI; + +namespace Assets.Scenes.Ride.Scripts +{ + public class ReviewFactory : MonoBehaviour + { + private CyclingController cyclingController; + private GameObject singleArea; + private GameObject reviewScrollView; + private GameObject reviewItem; + private GameObject content; + private GameObject otherPlayer; + private GameObject miniMapPlayer; + + private MapApi mapApi; + private PlayerController playerController; + private List reviewList ; + private List otherList; + + private void Awake() + { + reviewList = new List(); + otherList = new List(); + cyclingController = FindObjectOfType(); + singleArea = transform.Find("SingleArea").gameObject; + + reviewScrollView = transform.Find("ReviewArea").gameObject; + content = transform.Find("ReviewArea/ReviewScrollView/Viewport/Content").gameObject; + reviewItem = Resources.Load("UI/Prefab/Ride/ReviewItem"); + otherPlayer = Resources.Load("UI/Prefab/Ride/ReviewPlayer"); + miniMapPlayer = Resources.Load("UI/Prefab/Ride/MiniMapPlayer"); + playerController = FindObjectOfType(); + mapApi = new MapApi(); + } + + private void Start() + { + Refresh(); + } + public void Refresh() + { + var mode = cyclingController.cyclingModel; + switch (mode) + { + case Model.CyclingModel.Single: + singleArea.SetActive(true); + break; + case Model.CyclingModel.Online: + break; + case Model.CyclingModel.Review: + InitReview(); + break; + case Model.CyclingModel.Competition: + break; + case Model.CyclingModel.GlobalCycling: + break; + default: + break; + } + } + float t = 1; + private void Update() + { + t -= Time.deltaTime; + while (t < 0) + { + ReviewRanking(); + t = 1; + } + } + + private void ReviewRanking() + { + var sortList = reviewList.OrderByDescending(c => c.GetDistance()).ToList(); + for (int i = 0; i < sortList.Count; i++) + { + var item = sortList[i].gameObject.transform; + item.SetSiblingIndex(i); + } + } + private void InitReview() + { + reviewScrollView.SetActive(true); + var rankingList = mapApi.GetRecordFileFromServer(cyclingController.selectParamModel.RankingsId); + foreach (var item in rankingList) + { + GameObject newObj = (GameObject)Instantiate(reviewItem, content.transform); + + var reviewItemScript = newObj.GetComponent(); + reviewItemScript.SetHead(item.WxHeadImg); + reviewItemScript.SetName(item.NickName); + reviewItemScript.SetDistance(0D); + reviewList.Add(reviewItemScript); + GameObject otherPlayerObj = (GameObject)Instantiate(otherPlayer, transform.parent.parent.parent); + var otherPlayerController = otherPlayerObj.GetComponent(); + otherList.Add(otherPlayerController); + otherPlayerController.record = item.record; + otherPlayerController.SetController(reviewItemScript, playerController); + GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayer, transform.parent.parent.parent); + var miniController = miniPlayer.GetComponent(); + miniController.SetController(otherPlayerController); + } + } + } +} diff --git a/Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs.meta b/Assets/Scenes/Ride/Scripts/ReviewFactory.cs.meta similarity index 83% rename from Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs.meta rename to Assets/Scenes/Ride/Scripts/ReviewFactory.cs.meta index 05b82ff3..2e2a86f6 100644 --- a/Assets/Scenes/Ride/Scripts/PlayerItemFactory.cs.meta +++ b/Assets/Scenes/Ride/Scripts/ReviewFactory.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cbaab6daec5ce6243ae09ccf27489dae +guid: 8a2fc04fdcd84754fa144586013907eb MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs b/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs new file mode 100644 index 00000000..918a2abb --- /dev/null +++ b/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs @@ -0,0 +1,55 @@ +using Assets.Scripts; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; + +namespace Assets.Scenes.Ride.Scripts +{ + public class ReviewItemScript : MonoBehaviour + { + private RawImage Head; + private Text Name; + private Text Distance; + + private void Awake() + { + Head = transform.Find("Head").GetComponent(); + Name = transform.Find("Name").GetComponent(); + Distance = transform.Find("Distance").GetComponent(); + } + + private void Start() + { + + } + public void SetName(string name) + { + Name.text = name; + } + + public void SetHead(string url) + { + Utils.DisplayImage(StartCoroutine,Head,url); + var rect = ((RectTransform)Head.transform).rect; + Material material = Instantiate(Resources.Load("UI/Material/RoundedCornersTextureMaterial")); + material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height, 0)); + Head.material = material; + } + + public void SetDistance(double distance) + { + _distance = distance; + var prefix = distance > 0 ? "+" : ""; + Distance.text = prefix + distance.ToString() + "M"; + } + private double _distance; + public double GetDistance() + { + return _distance; + } + } +} diff --git a/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs.meta b/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs.meta new file mode 100644 index 00000000..5e6e92cb --- /dev/null +++ b/Assets/Scenes/Ride/Scripts/ReviewItemScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c0767437c87622348a0b98bbc0c7dc51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Ride/Scripts/RouteController.cs b/Assets/Scenes/Ride/Scripts/RouteController.cs index 83750708..0b598e7f 100644 --- a/Assets/Scenes/Ride/Scripts/RouteController.cs +++ b/Assets/Scenes/Ride/Scripts/RouteController.cs @@ -179,7 +179,7 @@ namespace Assets.Scenes.Ride.Scripts lineRender.endColor = c; lineRender.startColor = c; //设置宽度 - lineRender.SetWidth(0.2f, 0.2f); + lineRender.SetWidth(0.5f, 0.5f); lineRender.SetVertexCount(dat.Count); lineRender.SetPositions(feat.Points[0].ToArray()); lineRender.loop = false; diff --git a/Assets/Scenes/Ride/Scripts/SelectPlayerFactory.cs b/Assets/Scenes/Ride/Scripts/SelectPlayerFactory.cs new file mode 100644 index 00000000..f3064cc5 --- /dev/null +++ b/Assets/Scenes/Ride/Scripts/SelectPlayerFactory.cs @@ -0,0 +1,176 @@ +using Assets.Scenes.Ride.Scripts.Model; +using Assets.Scripts; +using Assets.Scripts.Apis; +using Assets.Scripts.Apis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace Assets.Scenes.Ride.Scripts +{ + public class SelectPlayerFactory : MonoBehaviour + { + GameObject prefab; + GameObject scroll; + Transform content; + Button rideButton; + Button cancelButton; + Button closeButton; + Button searchButton; + GameObject reviewPanel; + InputField inputField; + private int pageIndex = 0; + private int pageSize = 8; + private int totalPages = 0; + private string seachName = string.Empty; + CyclingController cyclingController; + public List gameObjects = new List(); + List selectPlayerItemScripts = new List(); + MapApi mapApi; + private void Awake() + { + mapApi = new MapApi(); + cyclingController = FindObjectOfType(); + //分页查询当前路数排行榜选手成绩列表 + prefab = Resources.Load("UI/Prefab/Ride/SelectPlayerItem"); + scroll = transform.Find("Panel/PlayerList/Scroll View").gameObject; + content = transform.Find("Panel/PlayerList/Scroll View/Viewport/Content"); + rideButton = transform.Find("Panel/RideButton").GetComponent