From cf06a40c80d97f26f55587fce6c2ac9286e09906 Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 23 Jun 2021 15:24:36 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=B2=E3=83=BC=E3=83=A0=E3=82=AA=E3=83=BC?= =?UTF-8?q?=E3=83=90=E3=83=BC=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- popcorn/Assets/MyGame/Scenes/Main/Main.unity | 118 ++++++++++++++++++- popcorn/Assets/PopcornGameManager.cs | 74 ++++++++++-- 2 files changed, 179 insertions(+), 13 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Main.unity b/popcorn/Assets/MyGame/Scenes/Main/Main.unity index 6e3f82c4..2a9a581a 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Main.unity +++ b/popcorn/Assets/MyGame/Scenes/Main/Main.unity @@ -202,6 +202,42 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &337575052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337575053} + m_Layer: 5 + m_Name: GameResult + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &337575053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337575052} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1003859322} + m_Father: {fileID: 676036207} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &420543913 GameObject: m_ObjectHideFlags: 0 @@ -398,6 +434,7 @@ RectTransform: - {fileID: 8786490829663474095} - {fileID: 8786490828878428803} - {fileID: 8786490829224139746} + - {fileID: 337575053} m_Father: {fileID: 420543917} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -418,6 +455,84 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3d5a5f132babc4b3e9790ccbeb891054, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1003859321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1003859322} + - component: {fileID: 1003859324} + - component: {fileID: 1003859323} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1003859322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003859321} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 337575053} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 429} + m_SizeDelta: {x: 1195.3561, y: 224.12926} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1003859323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003859321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4056604, g: 0.4056604, b: 0.4056604, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 189 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u6210\u529F\uFF01" +--- !u!222 &1003859324 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003859321} + m_CullTransparentMesh: 0 --- !u!1 &1129457737 GameObject: m_ObjectHideFlags: 0 @@ -636,7 +751,8 @@ MonoBehaviour: m_EditorClassIdentifier: startingGuide: {fileID: 8786490829224139677} powerMeter: {fileID: 8786490829663474092} - powerResult: {fileID: 8786490830332208977} + powerResultText: {fileID: 8786490830332208977} + gameResultText: {fileID: 1003859323} --- !u!4 &1870432534 Transform: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/PopcornGameManager.cs b/popcorn/Assets/PopcornGameManager.cs index 17a4abe1..374e4628 100644 --- a/popcorn/Assets/PopcornGameManager.cs +++ b/popcorn/Assets/PopcornGameManager.cs @@ -2,21 +2,28 @@ using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; +using UnityEngine.SceneManagement; using UnityEngine.UI; public class PopcornGameManager : MonoBehaviour { [SerializeField] private GameObject startingGuide; [SerializeField] private PowerMeter powerMeter; - [SerializeField] private Text powerResult; + [SerializeField] private Text powerResultText; + [SerializeField] private Text gameResultText; private Action tapAction; private bool isProgress; + private int gameCount; + private int failCount; + private readonly int maxGameCount = 3; + private readonly int maxFailCount = 2; // Start is called before the first frame update void Start() { - powerResult.text = ""; + powerResultText.text = ""; + gameResultText.text = ""; startingGuide.SetActive(true); powerMeter.StopMove(); isProgress = false; @@ -31,38 +38,81 @@ public class PopcornGameManager : MonoBehaviour private void GameStart() { + gameCount = 0; + failCount = 0; powerMeter.StartMove(); tapAction = () => { isProgress = true; powerMeter.StopMove(); + gameCount++; var pos = powerMeter.GetCurrentPosisiton(); Debug.Log($"tap! {pos}"); // 判定 - CheckQuality(pos); + if (!CheckQuality(pos)) + { + failCount++; + } + this.CallWaitForSeconds(1f, () => { + powerResultText.text = ""; + // 失敗 + if (failCount >= maxFailCount) + { + gameResultText.text = "失敗!"; + powerMeter.gameObject.SetActive(false); + tapAction = () => { }; + this.CallWaitForSeconds(1f, () => + { + gameResultText.text = "タップでリスタート"; + tapAction = () => { + { + SceneManager.LoadScene("Main"); + }}; + isProgress = false; + }); + return; + } + + // 成功 + if (gameCount >= maxGameCount) + { + gameResultText.text = "成功!"; + powerMeter.gameObject.SetActive(false); + tapAction = () => { }; + this.CallWaitForSeconds(1f, () => + { + gameResultText.text = "タップでリスタート"; + tapAction = () => { + { + SceneManager.LoadScene("Main"); + }}; + isProgress = false; + }); + return; + } isProgress = false; - powerResult.text = ""; powerMeter.StartMove(); }); }; } - private void CheckQuality(float pos) + private bool CheckQuality(float pos) { //Great=0.3 //Perfect=0.45~0.5 - powerResult.text = "ミス!"; + powerResultText.text = "ミス!"; if (pos <= 0.2) { - powerResult.text = "グッド"; + powerResultText.text = "グッド"; + if (pos <= 0.05f) + { + powerResultText.text = "パーフェクト"; + } + return true; } - if (pos <= 0.05f) - { - powerResult.text = "パーフェクト"; - } - + return false; } // Update is called once per frame