using UnityEngine; using Assets.Scripts.Apis.Models; using System; using Assets.Scripts.Apis; using System.Linq; using System.Collections.Generic; using System.Globalization; using Assets.Scenes.Ride.Scripts.Model; using System.IO; namespace Assets.Scenes.Ride.Scripts { public class PlayerController : AbstractPlayer { #region 骑行逻辑 protected override void Init() { base.Init(); } /// /// 计算数据,父类会在此方法后处理动画 /// protected override void Compute() { //计算数据 //speed = mainController.UpDateSpeed(); heartRate = mainController.UpDateHeart()??0; power = mainController.UpdatePower(); cadance = mainController.UpdateCadence(); power = 2000;//测试功率 speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight); distance = mainController.UpdateDistance(speed); totalDistance += distance; //记录骑行数据 var recordText = string.Format($"{ ticks },{ power.ToString(CultureInfo.InvariantCulture) },{ speed.ToString(CultureInfo.InvariantCulture) },{ Math.Round(totalDistance, 6).ToString(CultureInfo.InvariantCulture) },{ cadance.ToString(CultureInfo.InvariantCulture) },{ heartRate.ToString(CultureInfo.InvariantCulture) },{ Math.Round(nextlatlong.x, 6).ToString(CultureInfo.InvariantCulture) },{ Math.Round(nextlatlong.y, 6).ToString(CultureInfo.InvariantCulture) }"); Debug.Log(recordText); #if !UNITY_EDITOR var recorderData = cyclingExcutor.recorderData; recorderData.RiderDatas.Add(new TargetData { Ticks = ticks, _Power = power, _Speed = speed, _Distance = totalDistance> mapData.TotalDistance? mapData.TotalDistance: totalDistance, _Cadence = cadance, _HeartRate = heartRate, _Lat = nextlatlong.x, _Lon = nextlatlong.y }); #endif } //上传数据 protected override void Upload() { #if !UNITY_EDITOR cyclingExcutor.recorderData.IsCompleted = totalDistance == mapData.TotalDistance; cyclingExcutor.recorderData.EndDistance = totalDistance; cyclingExcutor.recorderData.SaveData(cyclingExcutor.Mode,null,string.Empty); #endif } #endregion } }