diff --git a/popcorn/Assets/MyGame/Scenes/Settings/HowToPlay.unity b/popcorn/Assets/MyGame/Scenes/Settings/HowToPlay.unity index cd57175a..9df1dfbe 100644 --- a/popcorn/Assets/MyGame/Scenes/Settings/HowToPlay.unity +++ b/popcorn/Assets/MyGame/Scenes/Settings/HowToPlay.unity @@ -808,6 +808,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1345967581} + - component: {fileID: 1345967582} m_Layer: 5 m_Name: Window m_TagString: Untagged @@ -836,6 +837,26 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 57} m_SizeDelta: {x: 705, y: 780} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1345967582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1345967580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8de0d5dc0904c54ae611a0faadedeb9, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundAnimator: {fileID: 567241586} + closeButton: {fileID: 1647364804} + nextButton: {fileID: 1828080668} + prevButton: {fileID: 1013046732} + explainObjects: + - {fileID: 996499144} + - {fileID: 2062565273} + - {fileID: 1517093067} --- !u!1 &1517093067 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs new file mode 100644 index 00000000..b40ccd7f --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs @@ -0,0 +1,45 @@ +using System; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +namespace MyGame.Scenes.Settings.Scripts +{ + public class HowToPlayWindow : MonoBehaviour + { + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button closeButton; + + [SerializeField] private Button nextButton; + [SerializeField] private Button prevButton; + [SerializeField] private GameObject[] explainObjects; + + private void Start() + { + closeButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.HowToPlay); + }); + }).AddTo(this); + + var objectsLength = explainObjects.Length; + nextButton.OnClickAsObservable() + .Select(_ => 1) + .Merge(prevButton.OnClickAsObservable().Select(_ => -1)) + .Scan(0, (acc, current) => (acc + current + objectsLength) % objectsLength) + .Subscribe(x => + { + for (int i = 0; i < objectsLength; i++) + { + explainObjects[i].SetActive(i == x); + } + }).AddTo(this); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs.meta b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs.meta new file mode 100644 index 00000000..e8c26ea4 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/HowToPlayWindow.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c8de0d5dc0904c54ae611a0faadedeb9 +timeCreated: 1644204988 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Settings/Scripts/SettingDialog.cs b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/SettingDialog.cs index cd1d23cc..4f879c84 100644 --- a/popcorn/Assets/MyGame/Scenes/Settings/Scripts/SettingDialog.cs +++ b/popcorn/Assets/MyGame/Scenes/Settings/Scripts/SettingDialog.cs @@ -18,6 +18,7 @@ namespace MyGame.Scenes.Settings.Scripts [SerializeField] private GameObject bgmSoundOnIcon; [SerializeField] private GameObject seSoundOnIcon; [SerializeField] private GameObject vibeOnIcon; + [SerializeField] private Button howToPlayButton; private void Start() { @@ -69,6 +70,11 @@ namespace MyGame.Scenes.Settings.Scripts vibeOnIcon.SetActive(x); }).AddTo(this); vibrationalToggle.isOn = VibrationManager.Instance.IsEnable; + + howToPlayButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => + { + TransitionManager.Instance.LoadSceneAdditive(GameScenes.HowToPlay); + }).AddTo(this); } } } \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Settings/SettingsDialog.unity b/popcorn/Assets/MyGame/Scenes/Settings/SettingsDialog.unity index 175ff518..4b141c8a 100644 --- a/popcorn/Assets/MyGame/Scenes/Settings/SettingsDialog.unity +++ b/popcorn/Assets/MyGame/Scenes/Settings/SettingsDialog.unity @@ -1843,6 +1843,7 @@ MonoBehaviour: bgmSoundOnIcon: {fileID: 872879782} seSoundOnIcon: {fileID: 158592185} vibeOnIcon: {fileID: 1814839065} + howToPlayButton: {fileID: 1344990812} --- !u!1 &1173859415 GameObject: m_ObjectHideFlags: 0 @@ -3759,4 +3760,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: bedef2aeaac8da04faa9a07b7241d0ad, type: 3} m_Name: m_EditorClassIdentifier: - mTarget: {fileID: 1794914336} + mTarget: {fileID: 1894598663}