fix:AR相关修改
This commit is contained in:
1 parent
74ba5790f9
commit
c95f6b7c70
12 files changed
+382
-368
No files matched your search
@@ -291,31 +291,17 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
|
||||
private async Task StartDownloading()
|
||||
{
|
||||
slider.maxValue = downloader.Total * 100;
|
||||
if(downloader.IsVideoDownloaded)
|
||||
await downloader.DownLoadVideoAsync(Progress.Create<float>(HandleProgress));
|
||||
if(downloader.IsARRouteDownloaded)
|
||||
await downloader.DownLoadARRouteAsync(Progress.Create<float>(HandleProgress));
|
||||
if(downloader.IsARDataDownloaded)
|
||||
await downloader.DownLoadARDataAsync(Progress.Create<float>(HandleProgress));
|
||||
|
||||
//cancelToken = new CancellationTokenSource();
|
||||
//CompleteDownLoad();
|
||||
cancelToken = new CancellationTokenSource();
|
||||
await downloader.DownLoadDefault(ReportProgress, cancelToken);
|
||||
}
|
||||
|
||||
private void HandleProgress(float value)
|
||||
private void ReportProgress(float progress)
|
||||
{
|
||||
if (cancelToken != null && cancelToken.IsCancellationRequested)
|
||||
return;
|
||||
|
||||
slider.value += (float)Math.Round(value * 100, 0);
|
||||
Debug.Log(value);
|
||||
|
||||
var progress = slider.value / slider.maxValue * 100;
|
||||
downloadText.text = progress.ToString(CultureInfo.InvariantCulture) + "%";
|
||||
|
||||
var isComplete = slider.value == slider.maxValue;
|
||||
if (isComplete)
|
||||
slider.value = progress * 100;
|
||||
downloadText.text = (progress * 100).ToString("f2") + "%";
|
||||
if (progress == 1f)
|
||||
CompleteDownLoad();
|
||||
}
|
||||
|
||||
@@ -323,11 +309,16 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
{
|
||||
var filepath = $"{PFConstants.VideoFolder}/{route.FileName}";
|
||||
manager.SetMedia(filepath);
|
||||
downloading = false;
|
||||
cancelToken = null;
|
||||
|
||||
watch.SetActive(App.routeResult == null);
|
||||
watch.GetComponent<Button>().enabled = true;
|
||||
|
||||
rideNow.enabled = true;
|
||||
rideNow.interactable = true;
|
||||
|
||||
downloadText.text = App.GetLocalString("Ride Now");
|
||||
downloading = false;
|
||||
}
|
||||
|
||||
//进入观察模式
|
||||
@@ -370,18 +361,20 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
private void CancelDownload()
|
||||
{
|
||||
UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent<PFUIPanel>());
|
||||
|
||||
var videoUiManager = FindObjectOfType<VideoUIManager>();
|
||||
UIManager.ShowConfirm("Tips", "CancelDownloadConfirm",
|
||||
() =>
|
||||
{
|
||||
cancelToken?.Cancel();
|
||||
SceneManager.LoadSceneAsync("MainScene");
|
||||
UIManager.CloseConfirm();
|
||||
videoUiManager.SetModalPanel();
|
||||
},
|
||||
2,
|
||||
() =>
|
||||
{
|
||||
UIManager.CloseConfirm();
|
||||
videoUiManager.SetModalPanel();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Assets.Scenes.Ride.Scripts;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
@@ -61,32 +62,33 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
|
||||
private void Start()
|
||||
{
|
||||
UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent<PFUIPanel>());
|
||||
|
||||
manager = FindObjectOfType<VideoGameManager>();
|
||||
Init();
|
||||
}
|
||||
|
||||
public void SetModalPanel()
|
||||
{
|
||||
UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent<PFUIPanel>());
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (manager != null && manager.GetMapRoute() != null)
|
||||
{
|
||||
mapName.text = manager.GetMapRoute().Name;
|
||||
if (manager.CurrentPlayer != null)
|
||||
{
|
||||
power.text = Math.Round(manager.CurrentPlayer.power).ToString();
|
||||
speed.text = manager.CurrentPlayer.speed.ToString("f1");
|
||||
heartRate.text = Math.Round((manager.CurrentPlayer.heartRate ?? 0d)).ToString();
|
||||
cadance.text = Math.Round(manager.CurrentPlayer.cadance).ToString();
|
||||
playerTimer.text = Helper.FormatTicks(manager.CurrentPlayer.ticks);
|
||||
distance.text = $"{Math.Round((manager.CurrentPlayer.totalDistance),2)}KM";
|
||||
left.fillAmount = (float)(Math.Round(manager.CurrentPlayer.power) / MAXPOWER_RATE);
|
||||
right.fillAmount = (float)(Math.Round((manager.CurrentPlayer.heartRate ?? 0f)) / MAXHEARRATE);
|
||||
SetSlopePanel();
|
||||
ftpImage.fillAmount = (float)(manager.CurrentPlayer.wkg / MAXWKG);
|
||||
wkg.text = $"{manager.CurrentPlayer.wkg}w/kg";
|
||||
SetHeartRateAlert();
|
||||
}
|
||||
}
|
||||
if (manager == null || manager.GetMapRoute() == null) return;
|
||||
mapName.text = manager.GetMapRoute().Name;
|
||||
if (manager.CurrentPlayer == null) return;
|
||||
power.text = Math.Round(manager.CurrentPlayer.power).ToString();
|
||||
speed.text = manager.CurrentPlayer.speed.ToString("f1");
|
||||
heartRate.text = Math.Round((manager.CurrentPlayer.heartRate ?? 0d)).ToString();
|
||||
cadance.text = Math.Round(manager.CurrentPlayer.cadance).ToString();
|
||||
playerTimer.text = Helper.FormatTicks(manager.CurrentPlayer.ticks);
|
||||
distance.text = $"{Math.Round((manager.CurrentPlayer.totalDistance),2)}KM";
|
||||
left.fillAmount = (float)(Math.Round(manager.CurrentPlayer.power) / MAXPOWER_RATE);
|
||||
right.fillAmount = (float)(Math.Round((manager.CurrentPlayer.heartRate ?? 0f)) / MAXHEARRATE);
|
||||
SetSlopePanel();
|
||||
ftpImage.fillAmount = (float)(manager.CurrentPlayer.wkg / MAXWKG);
|
||||
wkg.text = $"{manager.CurrentPlayer.wkg}w/kg";
|
||||
SetHeartRateAlert();
|
||||
}
|
||||
|
||||
//心率过高的时候显示
|
||||
@@ -106,19 +108,18 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
public void ShowUpRemainTime(double remain)
|
||||
{
|
||||
if (remain > 110) return;
|
||||
|
||||
remain -= 20;
|
||||
|
||||
remain -= 15;
|
||||
|
||||
var canvas = remainTime.GetComponent<CanvasGroup>();
|
||||
if (remain <= 0)
|
||||
{
|
||||
if (canvas.alpha == 1)
|
||||
canvas.DOFade(0, 1).onComplete = () => { remainTime.SetActive(false); };
|
||||
canvas.DOFade(0, 1).onComplete = () => remainTime.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
remainTime.SetActive(true);
|
||||
remainTime.transform.Find("Bg/Distance").GetComponent<Text>().text = remain.ToString().PadLeft(2,'0');
|
||||
remainTime.transform.Find("Bg/Distance").GetComponent<Text>().text = remain.ToString(CultureInfo.InvariantCulture).PadLeft(2,'0');
|
||||
|
||||
if (canvas.alpha == 0)
|
||||
canvas.DOFade(1, 1f);
|
||||
@@ -169,7 +170,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
quitBtn = transform.Find("Panel/ToolBarPanel/ExitButton").gameObject;
|
||||
changeViewBtn = transform.Find("Panel/ToolBarPanel/ChangeView").gameObject;
|
||||
deviceBtn = transform.Find("Panel/ToolBarPanel/DeviceButton").gameObject;
|
||||
//minmap
|
||||
|
||||
playerTimer = transform.Find("Panel/MiniMap/Panel/Timer").GetComponent<Text>();
|
||||
distance = transform.Find("Panel/MiniMap/Panel/Distance").GetComponent<Text>();
|
||||
mapName = transform.Find("Panel/MiniMap/Head/MapName").GetComponent<Text>();
|
||||
@@ -184,7 +185,6 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
settingPanel = transform.Find("Panel/SettingPanel").gameObject;
|
||||
resultPanel = transform.Find("Panel/ResultPanel").gameObject;
|
||||
gameRoomResultPanel = transform.Find("Panel/GameRoomResult").gameObject;
|
||||
//
|
||||
explosive = transform.Find("Panel/Explosive").gameObject;
|
||||
//toolbar 事件注册
|
||||
UIManager.AddEvent(settingBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSetting);
|
||||
@@ -197,7 +197,8 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
private void SetSlopePanel()
|
||||
{
|
||||
var normalizedSlope = (float)Math.Round(manager.CurrentPlayer.currentSlope, 1);
|
||||
slope.text = normalizedSlope > 0 ? "+"+normalizedSlope.ToString():normalizedSlope.ToString();
|
||||
slope.text = normalizedSlope > 0 ? "+"+normalizedSlope.ToString(CultureInfo.InvariantCulture):normalizedSlope.ToString(CultureInfo.InvariantCulture);
|
||||
|
||||
var strength = 3;//增强旋转角度系数
|
||||
if (normalizedSlope > 10) {
|
||||
normalizedSlope = 10f;
|
||||
@@ -233,6 +234,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
{
|
||||
UIManager.ShowRideSettingPanel();
|
||||
}
|
||||
|
||||
private void DeviceClick(BaseEventData e)
|
||||
{
|
||||
UIManager.Show(UIManager.Instance.DevicePanel, null, true);
|
||||
@@ -272,12 +274,19 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
videoResultScript.InjectController(manager);
|
||||
videoResultScript.SetDataSource(manager.cyclingController.recorderData);
|
||||
}
|
||||
|
||||
public void SaveAndShowResult()
|
||||
{
|
||||
if (manager._aRMode == VideoGameManager.ARMode.INSPECT)
|
||||
if (manager._aRMode == ARMode.INSPECT)
|
||||
{
|
||||
SceneManager.LoadScene("MainScene");
|
||||
videoPlayer = FindObjectOfType<VideoPlayer>();
|
||||
videoPlayer?.Upload();
|
||||
return;
|
||||
}
|
||||
|
||||
videoPlayer = manager.CurrentPlayer as VideoPlayer;
|
||||
if(videoPlayer == null) return;
|
||||
|
||||
videoPlayer.Upload();
|
||||
//show result
|
||||
if (manager.cyclingController is GameModel)
|
||||
{
|
||||
@@ -293,6 +302,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
||||
videoResultScript.SetDataSource(manager.cyclingController.recorderData);
|
||||
}
|
||||
}
|
||||
|
||||
private void QuitClick(BaseEventData e)
|
||||
{
|
||||
var idMainRider = manager.CurrentPlayer != null && manager.CurrentPlayer.UserId == App.CurrentUser.Id;
|
||||
|
||||
Reference in new issue
Block a user