From a7b2b1dd6f45941bc3905c6ec1090e7abbb27cce Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 22 Oct 2021 18:50:54 +0900 Subject: [PATCH] =?UTF-8?q?ApplicationExitConfirmDialog=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Resources/DontDestroyObject.prefab | 13 ++++ .../ApplicationExitConfirmDialog.unity | 63 ++++++++++++++++++- .../ApplicationExitConfirmDialogManager.cs | 45 +++++++++++++ ...pplicationExitConfirmDialogManager.cs.meta | 3 + .../MyGame/Scripts/InitializeUnitySettings.cs | 2 +- 5 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs create mode 100644 popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs.meta diff --git a/popcorn/Assets/MyGame/Resources/DontDestroyObject.prefab b/popcorn/Assets/MyGame/Resources/DontDestroyObject.prefab index da6b5318..62885fe6 100644 --- a/popcorn/Assets/MyGame/Resources/DontDestroyObject.prefab +++ b/popcorn/Assets/MyGame/Resources/DontDestroyObject.prefab @@ -96,6 +96,7 @@ GameObject: - component: {fileID: 5400893423074421525} - component: {fileID: 7906393928596777865} - component: {fileID: 7743573513958854474} + - component: {fileID: 7825871007626831899} m_Layer: 0 m_Name: DontDestroyObject m_TagString: Untagged @@ -203,6 +204,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8e2021f1b8ce47f79191ab8732fba298, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &7825871007626831899 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3459593390050872226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f68a23c0272694e4e918abbda26859b7, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &8739647597683206087 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/ApplicationExitConfirmDialog/ApplicationExitConfirmDialog.unity b/popcorn/Assets/MyGame/Scenes/ApplicationExitConfirmDialog/ApplicationExitConfirmDialog.unity index d83ed214..dc2ce08e 100644 --- a/popcorn/Assets/MyGame/Scenes/ApplicationExitConfirmDialog/ApplicationExitConfirmDialog.unity +++ b/popcorn/Assets/MyGame/Scenes/ApplicationExitConfirmDialog/ApplicationExitConfirmDialog.unity @@ -356,6 +356,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1127484801} + - component: {fileID: 1127484802} m_Layer: 5 m_Name: Window m_TagString: Untagged @@ -384,6 +385,22 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 57} m_SizeDelta: {x: 705, y: 550} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1127484802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127484800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 197f410dd5604be3b81c5586583cdea0, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundAnimator: {fileID: 1178014942} + backButton: {fileID: 1178014945} + closeButton: {fileID: 1561203356} + exitButton: {fileID: 2067370848} --- !u!1 &1178014940 GameObject: m_ObjectHideFlags: 0 @@ -396,6 +413,7 @@ GameObject: - component: {fileID: 1178014944} - component: {fileID: 1178014943} - component: {fileID: 1178014942} + - component: {fileID: 1178014945} m_Layer: 5 m_Name: background m_TagString: Untagged @@ -455,7 +473,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 0.9372549, a: 0.19607843} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -478,6 +496,49 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1178014940} m_CullTransparentMesh: 0 +--- !u!114 &1178014945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178014940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1178014943} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1179090616 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs b/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs new file mode 100644 index 00000000..79c5ef33 --- /dev/null +++ b/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs @@ -0,0 +1,45 @@ +using System; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +public sealed class ApplicationExitConfirmDialogManager : MonoBehaviour +{ + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button backButton; + [SerializeField] private Button closeButton; + [SerializeField] private Button exitButton; + + private void Start() + { + backButton.OnClickAsObservable() + .Merge(closeButton.OnClickAsObservable()) + .Subscribe(_ => + { + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, OnHide); + }).AddTo(this); + exitButton.OnClickAsObservable().Subscribe(_ => OnExit()).AddTo(this); + } + + public void OnExit(){ +#if UNITY_EDITOR + UnityEditor.EditorApplication.isPlaying = false; +#else + UnityEngine.Application.Quit(); +#endif + } + + public void OnHide(){ + this.CallWaitForOneFrame(() => { + TransitionManager.Instance.UnloadScene(GameScenes.ApplicationExitConfirmDialog); + }); + } + + public static void ShowDialog(){ + TransitionManager.Instance.LoadSceneAdditive(GameScenes.ApplicationExitConfirmDialog, SceneType.ManualUnloadOnly); + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs.meta b/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs.meta new file mode 100644 index 00000000..bb377a9f --- /dev/null +++ b/popcorn/Assets/MyGame/Scripts/ApplicationExitConfirmDialogManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 197f410dd5604be3b81c5586583cdea0 +timeCreated: 1634893033 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/InitializeUnitySettings.cs b/popcorn/Assets/MyGame/Scripts/InitializeUnitySettings.cs index 755dcd98..a3962ef9 100644 --- a/popcorn/Assets/MyGame/Scripts/InitializeUnitySettings.cs +++ b/popcorn/Assets/MyGame/Scripts/InitializeUnitySettings.cs @@ -22,7 +22,7 @@ public sealed class InitializeUnitySettings : MonoBehaviour { // SRDebug.Init(); #endif -// BackButtonManager.Instance.SetGenericAction(ApplicationExitConfirmDialogManager.ShowDialog); + BackButtonManager.Instance.SetGenericAction(ApplicationExitConfirmDialogManager.ShowDialog); Application.targetFrameRate = 60;