From 97fcc28eaccdfac7ac1cea10c111d277085cfcec Mon Sep 17 00:00:00 2001 From: kimura Date: Mon, 5 Jul 2021 14:20:53 +0900 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=9C=9F=E5=8C=96=E3=83=A1=E3=82=BD?= =?UTF-8?q?=E3=83=83=E3=83=89=E8=BF=BD=E5=8A=A0/=E6=B8=A9=E5=BA=A6?= =?UTF-8?q?=E5=A4=89=E5=8C=96=E3=82=92=E3=81=AA=E3=82=81=E3=82=89=E3=81=8B?= =?UTF-8?q?=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/Cooking/Cooking.unity | 3 ++- .../Scenes/Cooking/Scripts/ThermalControl.cs | 19 ++++++++++--------- popcorn/Assets/PopcornGameManager.cs | 1 + 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity b/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity index c2a353e9..43a88434 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity @@ -2896,9 +2896,10 @@ MonoBehaviour: panController: {fileID: 2603874727618424762} thermoMeter: {fileID: 1928679192} temperature: 0 + temperatureSpeed: 0 panSpeed: 0 panFactor: 0.5 - deadZone: 0.08 + deadZone: 0.01 baseIncreaseSpeed: 0.06 hotIncreaseSpeed: 0.09 maxDecreaseSpeed: 0.09 diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs index e22bb371..d07b9430 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs @@ -16,12 +16,13 @@ public class ThermalControl : MonoBehaviour [SerializeField] private ThermoMeter thermoMeter; [Space] [SerializeField, ReadOnly] private float temperature; + [SerializeField, ReadOnly] private float temperatureSpeed; [SerializeField, ReadOnly] private float panSpeed; [Space] [Header("フライパン感度/デッドゾーン")] [SerializeField] private float panFactor = .5f; [SerializeField] private float deadZone = .1f; - [Header("熱くなるスピード/冷えるスピードの最大値")] + [Header("熱くなるスピード/冷えるスピードの最大値/加速")] [SerializeField] private float baseIncreaseSpeed = .03f; [SerializeField] private float hotIncreaseSpeed = .07f; [SerializeField] private float maxDecreaseSpeed = .03f; @@ -29,43 +30,43 @@ public class ThermalControl : MonoBehaviour [Header("ゲージ調整")] [SerializeField] private float coldValue = 0.32f; [SerializeField] private float hotValue = 0.67f; + + private float duration = 0.3f; public IReadOnlyReactiveProperty Condition => condition; private ReactiveProperty condition; - private void Start() + public void Initialize() { temperature = 0f; condition = new ReactiveProperty(ThermalCondition.Cold); thermoMeter.SetScale(coldValue, hotValue); - + condition.DistinctUntilChanged().Subscribe(x => { Debug.Log($"cond :{x} temp: {temperature}"); }).AddTo(this); } - private ThermalCondition prevCond; - private void Update() { panSpeed = panController.Delta.magnitude * panFactor; if (panSpeed > deadZone) { - temperature -= Mathf.Min(panSpeed, maxDecreaseSpeed) * Time.deltaTime; + temperatureSpeed = Mathf.Lerp(temperatureSpeed, -Mathf.Min(panSpeed, maxDecreaseSpeed), Time.deltaTime / duration); } else { if (condition.Value == ThermalCondition.Hot) { - temperature += hotIncreaseSpeed * Time.deltaTime; + temperatureSpeed = Mathf.Lerp(temperatureSpeed, hotIncreaseSpeed, Time.deltaTime / duration); } else { - temperature += baseIncreaseSpeed * Time.deltaTime; + temperatureSpeed = Mathf.Lerp(temperatureSpeed, baseIncreaseSpeed, Time.deltaTime / duration); } } - temperature = Mathf.Clamp01(temperature); + temperature = Mathf.Clamp01(temperature + temperatureSpeed * Time.deltaTime); thermoMeter.SetValue(temperature); condition.Value = GetCondition(); } diff --git a/popcorn/Assets/PopcornGameManager.cs b/popcorn/Assets/PopcornGameManager.cs index ddffa74e..96e6314f 100644 --- a/popcorn/Assets/PopcornGameManager.cs +++ b/popcorn/Assets/PopcornGameManager.cs @@ -26,6 +26,7 @@ public class PopcornGameManager : MonoBehaviour // startingGuide.SetActive(true); isProgress = false; cornManager.Initialize(); + thermalControl.Initialize(); thermalControl.Condition.DistinctUntilChanged().Subscribe(x => {