diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity b/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity index ffd214a0..8890332b 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Cooking.unity @@ -7924,6 +7924,8 @@ MonoBehaviour: m_EditorClassIdentifier: startingGuide: {fileID: 8786490829224139677} gameResultText: {fileID: 1003859323} + characterSweat: {fileID: 580170368} + characterFlower: {fileID: 785034261} thermalControl: {fileID: 1870432535} thermoMeter: {fileID: 1928679192} cornManager: {fileID: 1870432536} diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/Corn.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/Corn.cs index 6405c5bd..29fb7949 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/Corn.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/Corn.cs @@ -19,6 +19,7 @@ public class Corn : MonoBehaviour { private static readonly int HashCornGrow = Animator.StringToHash("CornGrow"); private static readonly int HashCornBurn = Animator.StringToHash("CornBurn"); + [SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private Sprite cornSeedSprite; [SerializeField] private Sprite cornSimpleSprite; diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PanController.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PanController.cs index eb139956..470a0428 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PanController.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PanController.cs @@ -45,7 +45,9 @@ public class PanController : MonoBehaviour, IDragHandler, IBeginDragHandler // 移動範囲を制限 pos = targetBorder.bounds.ClosestPoint(pos); delta = pos - targetPos; +#if UNITY_EDITOR deltaString = $"delta: {delta.normalized} {delta.magnitude:F3}"; +#endif target.position = pos; } diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs index 4ba95727..031e5812 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/ThermalControl.cs @@ -32,21 +32,28 @@ public class ThermalControl : MonoBehaviour [SerializeField] private float hotValue = 0.67f; private float duration = 0.3f; + private bool isMove; - private readonly ReactiveProperty condition = new ReactiveProperty(ThermalCondition.Cold); public IReadOnlyReactiveProperty Condition => condition; + private readonly ReactiveProperty condition = new ReactiveProperty(ThermalCondition.Cold); private void Start() { condition.AddTo(this); +#if UNITY_EDITOR condition.DistinctUntilChanged().Subscribe(x => { Debug.Log($"cond :{x} temp: {temperature}"); }).AddTo(this); +#endif } private void Update() { + if (!isMove) + { + return; + } panSpeed = panController.Delta.magnitude * panFactor; if (panSpeed > deadZone) { @@ -87,4 +94,14 @@ public class ThermalControl : MonoBehaviour temperatureSpeed = 0f; thermoMeter.SetScale(coldValue, hotValue); } + + public void StartMeter() + { + isMove = true; + } + + public void StopMeter() + { + isMove = false; + } } diff --git a/popcorn/Assets/PopcornGameManager.cs b/popcorn/Assets/PopcornGameManager.cs index 9fec24c6..b43d7fd8 100644 --- a/popcorn/Assets/PopcornGameManager.cs +++ b/popcorn/Assets/PopcornGameManager.cs @@ -1,53 +1,97 @@ using System; using System.Collections.Generic; using UniRx; +using UniRx.Triggers; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.SceneManagement; using UnityEngine.UI; +public enum GameState +{ + Guide, + Playing, + Result +} + public class PopcornGameManager : MonoBehaviour { [SerializeField] private GameObject startingGuide; // [SerializeField] private Text powerResultText; [SerializeField] private Text gameResultText; - + + [SerializeField] private GameObject characterSweat; + [SerializeField] private GameObject characterFlower; [SerializeField] private ThermalControl thermalControl; [SerializeField] private ThermoMeter thermoMeter; [SerializeField] private CornManager cornManager; + + public IReadOnlyReactiveProperty State => state; + private readonly ReactiveProperty state = new ReactiveProperty(GameState.Guide); - private Action tapAction; - private bool isProgress; // Start is called before the first frame update void Start() { - gameResultText.text = ""; - // startingGuide.SetActive(true); - isProgress = false; - thermalControl.Condition.Subscribe(x => { cornManager.ChangeGrowSpeed(x); + switch (x) + { + case ThermalCondition.Cold: + characterFlower.gameObject.SetActive(false); + characterSweat.gameObject.SetActive(false); + break; + case ThermalCondition.Yellow: + characterFlower.gameObject.SetActive(true); + characterSweat.gameObject.SetActive(false); + break; + case ThermalCondition.Hot: + characterFlower.gameObject.SetActive(false); + characterSweat.gameObject.SetActive(true); + break; + default: + throw new ArgumentOutOfRangeException(nameof(x), x, null); + } }).AddTo(this); - ResetGame(); + this.UpdateAsObservable().Where(_ => Input.GetMouseButton(0)).FirstOrDefault().Subscribe(_ => + { + StartGame(); + }).AddTo(this); - // タップ後スタート - StartGame(); + ResetGame(); + + // コーンマネージャからResultきたらStateもResult + } private void Update() { } + private void ResetUI() + { + startingGuide.SetActive(true); + thermoMeter.gameObject.SetActive(false); + gameResultText.text = ""; + thermalControl.StopMeter(); + characterFlower.gameObject.SetActive(false); + characterSweat.gameObject.SetActive(false); + } + private void ResetGame() { + ResetUI(); thermalControl.ResetMeter(); cornManager.RespawnCorn(); } private void StartGame() { + startingGuide.SetActive(false); + thermoMeter.gameObject.SetActive(true); + thermalControl.StartMeter(); + state.Value = GameState.Playing; } }