update AutoCookProgressView.cs

This commit is contained in:
kimura 2022-04-15 10:15:14 +09:00
parent 013d922b13
commit 732d59b660
1 changed files with 11 additions and 6 deletions

View File

@ -1,4 +1,5 @@
using System;
using System.Linq;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
@ -24,6 +25,11 @@ namespace MyGame.Scenes.Main.Scripts
private void Start()
{
var gameData = GameDataManager.GameData;
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel);
var remainingTime = DateTime.FromBinary(gameData.AutoCookFinishTime).Subtract(DateTime.UtcNow);
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
@ -36,8 +42,7 @@ namespace MyGame.Scenes.Main.Scripts
});
}).AddTo(this);
var remainigTime = 0;
ResetTimer((int) DateTime.FromBinary(remainigTime).Subtract(DateTime.UtcNow).TotalSeconds);
ResetTimer((int) remainingTime.TotalSeconds, autoCookData.duration);
}
private void SetProgressImage(float value)
@ -51,18 +56,18 @@ namespace MyGame.Scenes.Main.Scripts
progressText.text = $"残り時間:{TimeSpan.FromSeconds(seconds):g}";
}
public void ResetTimer(int time)
private void ResetTimer(int remainingTime, int duration)
{
// タイマーの更新処理
timerDisposable?.Dispose();
SetTime(time);
SetTime(remainingTime);
timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f))
.Select(x => (int)(time - x))
.Select(x => (int)(remainingTime - x))
.TakeWhile(x => x > 0)
.Subscribe(x =>
{
SetTime(x);
SetProgressImage(1f - (float)x/time);
SetProgressImage(1f - (float)x/duration);
}, () =>
{
cookAnimator.enabled = false;