diff --git a/popcorn/Assets/MyGame/Resources/Data/DownloadDate.txt b/popcorn/Assets/MyGame/Resources/Data/DownloadDate.txt index 65fc69f7..aee7d6c2 100644 --- a/popcorn/Assets/MyGame/Resources/Data/DownloadDate.txt +++ b/popcorn/Assets/MyGame/Resources/Data/DownloadDate.txt @@ -1 +1 @@ -0JGb9UFU1CZQRt0MuqSjmQaMks+ukOMHyibSk9e/RWR/9+8DZVkG3vJda/5phs/v \ No newline at end of file +S60kh82TfGDU135ani3GSJY1pry9kzjd4+iVZZXZNW9LyJA8dgxO0cnGPHV2+7KS \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Resources/Data/ScrollGamePlaceData.txt b/popcorn/Assets/MyGame/Resources/Data/ScrollGamePlaceData.txt index 4312e1ea..8fbc1628 100644 --- a/popcorn/Assets/MyGame/Resources/Data/ScrollGamePlaceData.txt +++ b/popcorn/Assets/MyGame/Resources/Data/ScrollGamePlaceData.txt @@ -1 +1 @@ -MIa5t9VKm7CoyIOXE1YBSusOGOp/n+/ea3lMmjvoUkuoB7dUGNSSTuVMim/q1w2HTY5iyLG5f0nMIuSP2x6Pp9Mcgve3pWzhRiKKeWV85+BTHz646WISGYUPbGTqT0l7G8A2af+3GHMrM8N4h49oIPNxfqwMeQAna3V0S4cfPFaBRAncaYfao0yXYFcMwBMKavOiOiGrzru1F8Vrpknbur3iTslkxogAjjwDcqY94LVVCLnxgSrt0R4ta2pKxMRusiq4Fz9bolEbo6OgWuyNeg3VvHuQcsHM4JQfOezRlt8= \ No newline at end of file +Cq8Qg4qg27vPWHh0O+pAKqNHb2dh6qZfEca52GO4jFbq0rX2dMQ41tOBH9gOdNLkU68KEhrrglkK+8lZZnwXupBBBKVC4ekbjCqoTBDlwzq/mfbOq1i9dMzRvfj1ZDKEoaqPQHfyddTRo/hvoTImVO67Xpanh3ZLJ68+mslTUxmgvFHDbo3L50SSvrsQt6cUyyDnLU/l4VXs8isnnFTkMi6zbzbKRSCCOkLjCn8tTETMkdpCKC8WPXZ/I9VcBvpbsR5/c/D8EfCRDfWDUfc2Ug== \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Resources/Data/ScrollGameStageData.txt b/popcorn/Assets/MyGame/Resources/Data/ScrollGameStageData.txt index 860efcad..7fd48035 100644 --- a/popcorn/Assets/MyGame/Resources/Data/ScrollGameStageData.txt +++ b/popcorn/Assets/MyGame/Resources/Data/ScrollGameStageData.txt @@ -1 +1 @@ -T9yYpLdNTe7fylu3p4xoW68Q9Psu55096yYGlmq2fF4pnXfdNib/D6ystQBOz7l3IboWE0BL2Q2fVTVpR2Tr17YWb4ahLSuEIFWbx6PowbbnGB9E0uzc+MwAtQzDcPI87NoYZvswjzHSxCyLMCF7S5nDwTdjWI7Rv83jqcmjyRAFM39wG33wHTyXS1Rzlyz2IpYTdDDqhu7ka9yQEwAv4PJBnL8FU5kR71M+hapC/y/a7GASlbh18l2ylNR+SpSGjWAqPTN2Iypp1rfuZE+8KbZfNHb0UcyAdsxZAIEQzE/IdfUnfACfBQrjsOsTN7+fhLhKLnqePn7u5V69+BnCAg== \ No newline at end of file +4AGAEFgbNbHdysCKSOFCxePlbGXDmZgQnDq68Me/38IUE4YssxVVz8YNRK/9op9khQyS3nvkaUTzEDNpSVijX9oD5n3AtZKgb6PsSRf/g0ifDaJ3Hi7bF7k1c5cH29Tl3W+4+sY6BuaVCGJyFB0XGtqen8dOAHXLiDqs8NpnSN9eLUkL9qNVRakHxv2QVLC3GP+Wbkfgp/uX6gsd/WjppnPimgIPkVUsno6a6U98EZ1/yk+inwCZh/Ez4341h087Aw39oKgAmZwdWm828NpT/L0jGs0KlFpYKwigKMC6dIZBRzEaaATBUoL5Eyl3fHcrDOm1kUB5UJ4ydWHkZi9PXdzv58u/cohMBIt8VMT7fS0LUWre04Qm9lUSND5frIaCXa+o8mS34M1vJTwJIgaqUuibTbTMPn9TsJuTq4QKZnz2tru7AsEpMZcPHDJVZaH7wio9eaH6X53e663gXHoPIBrCa5IlWRmsyCJUPxtyXun+kbhSAhsL1BSGdz4yO979fLjcCFqnup2x4QJqgTufhln3mWsk6Ntcq+V2j+wn8qc= \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1a.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1a.prefab index cf3b79bb..8b7aad91 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1a.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1a.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &1272456563178855448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4119720326004031226} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4119720326004031226 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1272456563178855448} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2233378810729895866} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &5140115440945204540 GameObject: m_ObjectHideFlags: 0 @@ -31,6 +62,8 @@ Transform: m_Children: - {fileID: 1871391700204483434} - {fileID: 9198101237787776717} + - {fileID: 4119720326004031226} + - {fileID: 2252598198102958556} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -46,8 +79,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} m_Name: m_EditorClassIdentifier: - startPos: {fileID: 4193759859366624240} - endPos: {fileID: 6653402502725990282} + startPos: {fileID: 4119720326004031226} + endPos: {fileID: 2252598198102958556} +--- !u!1 &8752002035899489105 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2252598198102958556} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2252598198102958556 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8752002035899489105} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2233378810729895866} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1956465928252795982 PrefabInstance: m_ObjectHideFlags: 0 @@ -122,18 +186,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0522f5a9c22654ceca2b9ae04eecfac0, type: 3} ---- !u!4 &4193759859366624240 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2384085606314497982, guid: 0522f5a9c22654ceca2b9ae04eecfac0, - type: 3} - m_PrefabInstance: {fileID: 1956465928252795982} - m_PrefabAsset: {fileID: 0} ---- !u!4 &6653402502725990282 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5148565685416549316, guid: 0522f5a9c22654ceca2b9ae04eecfac0, - type: 3} - m_PrefabInstance: {fileID: 1956465928252795982} - m_PrefabAsset: {fileID: 0} --- !u!4 &9198101237787776717 stripped Transform: m_CorrespondingSourceObject: {fileID: 7242064396380437123, guid: 0522f5a9c22654ceca2b9ae04eecfac0, diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1b.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1b.prefab index aff34ba3..69ddcb52 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1b.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage1b.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &3996415437712048096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2551531464901230235} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2551531464901230235 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3996415437712048096} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2124088376866006345} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4464340028676474214 GameObject: m_ObjectHideFlags: 0 @@ -26,6 +57,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 148.91467, y: 2.3177247, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2124088376866006345} m_RootOrder: 14 @@ -56,6 +88,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 67.6, y: 2.3177245, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2124088376866006345} m_RootOrder: 13 @@ -69,6 +102,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2124088376866006345} + - component: {fileID: 8151766844780269456} m_Layer: 0 m_Name: Stage1b m_TagString: Untagged @@ -86,6 +120,7 @@ Transform: 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_ConstrainProportionsScale: 0 m_Children: - {fileID: 5334254581099664965} - {fileID: 6889697067878944854} @@ -119,9 +154,56 @@ Transform: - {fileID: 6087903602085080222} - {fileID: 1678366341090779137} - {fileID: 7225821940121177158} + - {fileID: 2744337522936473663} + - {fileID: 2551531464901230235} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8151766844780269456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6825300293089241174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} + m_Name: + m_EditorClassIdentifier: + startPos: {fileID: 2744337522936473663} + endPos: {fileID: 2551531464901230235} +--- !u!1 &8850265187220067279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2744337522936473663} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2744337522936473663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8850265187220067279} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2124088376866006345} + m_RootOrder: 32 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &457306673180935537 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2a.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2a.prefab index 9e94ab86..dec743dd 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2a.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2a.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2689750290871442059 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3032965588344489343} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3032965588344489343 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2689750290871442059} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2454089663812030026} + m_RootOrder: 44 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &3275894143691012192 GameObject: m_ObjectHideFlags: 0 @@ -26,6 +57,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 148.91467, y: 2.3177247, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2454089663812030026} m_RootOrder: 19 @@ -56,10 +88,42 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 67.6, y: 2.3177245, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2454089663812030026} m_RootOrder: 18 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6694553627163660619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6048486752769672188} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6048486752769672188 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6694553627163660619} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2454089663812030026} + m_RootOrder: 43 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7862439291227870202 GameObject: m_ObjectHideFlags: 0 @@ -69,6 +133,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2454089663812030026} + - component: {fileID: 4315162973960776756} m_Layer: 0 m_Name: Stage2a m_TagString: Untagged @@ -86,6 +151,7 @@ Transform: 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_ConstrainProportionsScale: 0 m_Children: - {fileID: 7385970265648474765} - {fileID: 1436922894456840906} @@ -130,9 +196,25 @@ Transform: - {fileID: 8990417723823175798} - {fileID: 4119678685895478872} - {fileID: 7035028842901830796} + - {fileID: 6048486752769672188} + - {fileID: 3032965588344489343} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4315162973960776756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7862439291227870202} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} + m_Name: + m_EditorClassIdentifier: + startPos: {fileID: 6048486752769672188} + endPos: {fileID: 3032965588344489343} --- !u!1001 &154133418959109957 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2b.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2b.prefab index 42df453d..e41a2364 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2b.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage2b.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &276417027094206333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5191287873334589830} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5191287873334589830 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276417027094206333} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4580468283174947829} + m_RootOrder: 45 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &3990959132084175070 GameObject: m_ObjectHideFlags: 0 @@ -26,10 +57,42 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 148.91467, y: 2.3177247, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4580468283174947829} m_RootOrder: 19 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4881296025979749866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 671163420963226038} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &671163420963226038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4881296025979749866} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4580468283174947829} + m_RootOrder: 46 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8063655011831821646 GameObject: m_ObjectHideFlags: 0 @@ -39,6 +102,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4580468283174947829} + - component: {fileID: -4430287025709974354} m_Layer: 0 m_Name: Stage2b m_TagString: Untagged @@ -56,6 +120,7 @@ Transform: 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_ConstrainProportionsScale: 0 m_Children: - {fileID: 3180800213718610208} - {fileID: 6863554737051595384} @@ -102,9 +167,25 @@ Transform: - {fileID: 5524822289189389556} - {fileID: 4411667517282319924} - {fileID: 2432726148392566763} + - {fileID: 5191287873334589830} + - {fileID: 671163420963226038} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-4430287025709974354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8063655011831821646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} + m_Name: + m_EditorClassIdentifier: + startPos: {fileID: 5191287873334589830} + endPos: {fileID: 671163420963226038} --- !u!1 &8119634201046921871 GameObject: m_ObjectHideFlags: 0 @@ -131,6 +212,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 67.6, y: 2.3177245, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4580468283174947829} m_RootOrder: 18 diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3a.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3a.prefab index f79e0412..1ea8455e 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3a.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3a.prefab @@ -26,6 +26,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 67.6, y: 2.3177245, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2725888655826027606} m_RootOrder: 23 @@ -39,6 +40,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2725888655826027606} + - component: {fileID: -3158566811373325103} m_Layer: 0 m_Name: Stage3a m_TagString: Untagged @@ -56,6 +58,7 @@ Transform: 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_ConstrainProportionsScale: 0 m_Children: - {fileID: 5347965671286190159} - {fileID: 7681174380056256220} @@ -114,9 +117,25 @@ Transform: - {fileID: 587880479454672967} - {fileID: 6946350040614471511} - {fileID: 7149021530372022108} + - {fileID: 6905923460852342595} + - {fileID: 5913068647431169118} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-3158566811373325103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563731758725637829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} + m_Name: + m_EditorClassIdentifier: + startPos: {fileID: 6905923460852342595} + endPos: {fileID: 5913068647431169118} --- !u!1 &4344372735096427100 GameObject: m_ObjectHideFlags: 0 @@ -143,10 +162,73 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 148.91467, y: 2.3177247, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2725888655826027606} m_RootOrder: 24 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7592866035446771160 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6905923460852342595} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6905923460852342595 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7592866035446771160} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2725888655826027606} + m_RootOrder: 57 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8778783817517642641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5913068647431169118} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5913068647431169118 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8778783817517642641} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2725888655826027606} + m_RootOrder: 58 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &5061227295512138 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3b.prefab b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3b.prefab index 18a8aa76..927d80fd 100644 --- a/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3b.prefab +++ b/popcorn/Assets/MyGame/Resources/ScrollGame/Stages/Stage3b.prefab @@ -26,10 +26,42 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 67.6, y: 2.3177245, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2552418280157887158} m_RootOrder: 23 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4440357155852556307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2412075483273799316} + m_Layer: 0 + m_Name: 10Seconds point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2412075483273799316 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4440357155852556307} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 50, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2552418280157887158} + m_RootOrder: 58 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7741594668631066970 GameObject: m_ObjectHideFlags: 0 @@ -39,6 +71,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2552418280157887158} + - component: {fileID: 7601905581502890767} m_Layer: 0 m_Name: Stage3b m_TagString: Untagged @@ -56,6 +89,7 @@ Transform: 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_ConstrainProportionsScale: 0 m_Children: - {fileID: 3577449681499657311} - {fileID: 3316532519096250085} @@ -114,9 +148,25 @@ Transform: - {fileID: 1406049225113618935} - {fileID: 5427914803057467536} - {fileID: 7858943900312324155} + - {fileID: 1130693150276541006} + - {fileID: 2412075483273799316} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7601905581502890767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7741594668631066970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c6db6d25de0477999fc1b02c09563c0, type: 3} + m_Name: + m_EditorClassIdentifier: + startPos: {fileID: 1130693150276541006} + endPos: {fileID: 2412075483273799316} --- !u!1 &8543158018243461153 GameObject: m_ObjectHideFlags: 0 @@ -143,10 +193,42 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 148.91467, y: 2.3177247, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2552418280157887158} m_RootOrder: 24 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8927894187572342464 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1130693150276541006} + m_Layer: 0 + m_Name: StartPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1130693150276541006 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8927894187572342464} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2552418280157887158} + m_RootOrder: 57 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &118996657701961724 PrefabInstance: m_ObjectHideFlags: 0 @@ -4710,18 +4792,18 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 9909b8ac6fba54dcd98d1a129a7c8c09, type: 3} ---- !u!4 &7645641885994862055 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2000043922596723899, guid: 9909b8ac6fba54dcd98d1a129a7c8c09, - type: 3} - m_PrefabInstance: {fileID: 8204243026862422364} - m_PrefabAsset: {fileID: 0} --- !u!4 &1322287398587251349 stripped Transform: m_CorrespondingSourceObject: {fileID: 7170547486884922313, guid: 9909b8ac6fba54dcd98d1a129a7c8c09, type: 3} m_PrefabInstance: {fileID: 8204243026862422364} m_PrefabAsset: {fileID: 0} +--- !u!4 &7645641885994862055 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2000043922596723899, guid: 9909b8ac6fba54dcd98d1a129a7c8c09, + type: 3} + m_PrefabInstance: {fileID: 8204243026862422364} + m_PrefabAsset: {fileID: 0} --- !u!1001 &8281111852129607500 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_Collide.wav b/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_Collide.wav index f2cf330e..c295e9c5 100644 Binary files a/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_Collide.wav and b/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_Collide.wav differ diff --git a/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_FallDown.wav b/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_FallDown.wav index b5582daf..90a9ec5c 100644 Binary files a/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_FallDown.wav and b/popcorn/Assets/MyGame/Resources/Sounds/SE/se_minigame_FallDown.wav differ diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity b/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity index 0ebcfd37..fb677033 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity @@ -1889,6 +1889,10 @@ MonoBehaviour: readyObject: {fileID: 978217474} tutorialPopupObject: {fileID: 7325523898178317160} resultWaitTime: 1 + easyPitch: 1 + normalPitch: 1.05 + hardPitch: 1.1 + extraPitch: 1.15 isDebug: 0 --- !u!4 &1870432534 Transform: @@ -1936,13 +1940,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: stageTarget: {fileID: 1450368326} - normalTime: 15 - hardTime: 30 - extraTime: 45 stageGenerateDistance: 15 generateStageCount: 1 beginStageOffset: 0.5 - partsToPartsOffset: 3 + partsToPartsOffset: 0 --- !u!114 &1932485204 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs index 60347f8e..e6e87b36 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs @@ -33,6 +33,10 @@ namespace MyGame.Scenes.MiniGame.Scripts [SerializeField] private GameObject readyObject; [SerializeField] private GameObject tutorialPopupObject; [SerializeField] private float resultWaitTime = 1f; + [SerializeField, ReadOnly] private float easyPitch = 1f; + [SerializeField] private float normalPitch = 1.1f; + [SerializeField] private float hardPitch = 1.2f; + [SerializeField] private float extraPitch = 1.4f; #if UNITY_EDITOR [SerializeField] private bool isDebug; #endif @@ -76,6 +80,7 @@ namespace MyGame.Scenes.MiniGame.Scripts var levelPlaceList = placeList.Where(data => data.placeId == placeId).ToArray(); var levelStageList = stageList.Where(data => data.placeId == placeId).ToArray(); + // スコア保存に1つ目のstageDataIdを使用 var stageData = levelStageList[0]; var scoreUpdate = new Subject().AddTo(this); stageSelectView.SetPlaceData(levelPlaceList); @@ -92,20 +97,14 @@ namespace MyGame.Scenes.MiniGame.Scripts { if (gameData.ScrollGameTodayPlayCount == 0) { - gameData.ScrollGameLastPlayTime = DateTime.UtcNow.ToBinary(); - gameData.ScrollGameTodayPlayCount++; - ResetGame(levelPlaceList, stageData); - menuState.Value = MenuState.Game; + ResetGameWithCount(levelPlaceList, levelStageList); return; } // ポップアップ ビデオ視聴表示 ScrollGameWatchVideoDialog.ShowDialog(() => { - gameData.ScrollGameLastPlayTime = DateTime.UtcNow.ToBinary(); - gameData.ScrollGameTodayPlayCount++; - ResetGame(levelPlaceList, stageData); - menuState.Value = MenuState.Game; + ResetGameWithCount(levelPlaceList, levelStageList); }); }).AddTo(this); scoreUpdate.OnNext(Unit.Default); @@ -162,11 +161,13 @@ namespace MyGame.Scenes.MiniGame.Scripts break; case GameState.Play: SoundManager.Instance.PlaySE("se_minigame_Start"); - stageManager.StartTimer(); break; case GameState.Success: - SoundManager.Instance.PlaySE("se_minigame_End"); - player.Result(); + SoundManager.Instance.PlaySE("se_minigame_End", () => + { + SoundManager.Instance.ChangePitchBGM(1f); + player.Result(); + }); break; case GameState.Failure: break; @@ -200,7 +201,10 @@ namespace MyGame.Scenes.MiniGame.Scripts // カメラ移動 cameraTransform.position = playerPosX * Vector3.right + cameraOffset; bgManager.UpdatePos(playerPosX); - stageManager.UpdatePos(playerPosX); + if (!player.IsHit) + { + stageManager.UpdatePos(playerPosX); + } }).AddTo(this); stageManager.OnFence.Subscribe(x => @@ -213,6 +217,15 @@ namespace MyGame.Scenes.MiniGame.Scripts { bgManager.SetSky(x); player.SetSpeed(x); + var pitch = x switch + { + ScrollGameDifficulty.Easy => easyPitch, + ScrollGameDifficulty.Normal => normalPitch, + ScrollGameDifficulty.Hard => hardPitch, + ScrollGameDifficulty.Extra => extraPitch, + _ => throw new ArgumentOutOfRangeException(nameof(x), x, null) + }; + SoundManager.Instance.ChangePitchBGM(pitch); }).AddTo(this); player.OnEndHit.Subscribe(_ => @@ -220,13 +233,6 @@ namespace MyGame.Scenes.MiniGame.Scripts state.Value = GameState.Success; }).AddTo(this); - player.CurrentSpeedMultiply.SkipLatestValueOnSubscribe() - .Where(_ => state.Value == GameState.Play) - .Subscribe(x => - { - SoundManager.Instance.ChangePitchBGM(x); - }).AddTo(this); - player.OnHitItem.Where(_ => state.Value == GameState.Play).Subscribe(x => { if (!x.TryGetComponent(out var item)) @@ -274,8 +280,8 @@ namespace MyGame.Scenes.MiniGame.Scripts switch (item.ItemType) { case StageItem.Type.Obstacle: - stageManager.StopTimer(); player.Hit(closestPoint); + SoundManager.Instance.ChangePitchBGM(0f); break; case StageItem.Type.Item1: break; @@ -290,12 +296,21 @@ namespace MyGame.Scenes.MiniGame.Scripts } }).AddTo(this); } + + private void ResetGameWithCount (ScrollGamePlaceData[] levelPlaceList, ScrollGameStageData[] levelStageList) + { + GameDataManager.GameData.ScrollGameLastPlayTime = DateTime.UtcNow.ToBinary(); + GameDataManager.GameData.ScrollGameTodayPlayCount++; + stageManager.SetStageList(levelStageList); + ResetGame(levelPlaceList, levelStageList); + menuState.Value = MenuState.Game; + } - private void ResetGame(ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) + private void ResetGame(ScrollGamePlaceData[] placeList, ScrollGameStageData[] stageDataList) { SoundManager.Instance.ChangeVolumeUniqueBGM(1f); // ステージ読み込み - stageManager.SetBeginStages(stageData.GetBeginStagePrefabs()); + stageManager.SetBeginStages(); player.transform.position = characterBeginPos; player.ResetPlayer(); scoreCount.Value = 0; @@ -306,7 +321,7 @@ namespace MyGame.Scenes.MiniGame.Scripts .SelectMany(Observable.Timer(TimeSpan.FromSeconds(resultWaitTime))) .Subscribe(x => { - resultManager.ShowResult(scoreCount.Value, placeList, stageData); + resultManager.ShowResult(scoreCount.Value, placeList, stageDataList[0]); SoundManager.Instance.ChangePitchBGM(1f); }).AddTo(gameCompositeDisposable); @@ -314,10 +329,7 @@ namespace MyGame.Scenes.MiniGame.Scripts { ScrollGameWatchVideoDialog.ShowDialog(() => { - GameDataManager.GameData.ScrollGameLastPlayTime = DateTime.UtcNow.ToBinary(); - GameDataManager.GameData.ScrollGameTodayPlayCount++; - // ステージ読み込み - ResetGame(placeList, stageData); + ResetGameWithCount(placeList, stageDataList); }); }).AddTo(gameCompositeDisposable); diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageManager.cs index 3fc76284..30ec79bf 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using UniRx; using UnityEngine; @@ -8,77 +9,143 @@ namespace MyGame.Scenes.MiniGame.Scripts public class StageManager : MonoBehaviour { [SerializeField] private Transform stageTarget; - [SerializeField] private float normalTime; - [SerializeField] private float hardTime; - [SerializeField] private float extraTime; [SerializeField] private float stageGenerateDistance; [SerializeField] private int generateStageCount; [SerializeField] private float beginStageOffset; [SerializeField] private float partsToPartsOffset; - private Transform[] stagePrefabs; - private Transform[] stages; + private float normalTime; + private float hardTime; + private float extraTime; + private Transform[] stageBeginPrefabList; + private Transform[] stageRandomPrefabList; + private int beginIndex; + private int lengthIndex; private float stageEndXPos; private float cacheTargetXPos; - public IObservable OnFence => fenceSubject; + public IObservable OnFence => fenceSubject.DelayFrame(1); // 1フレーム送らせて通知 private readonly Subject fenceSubject = new(); public IReadOnlyReactiveProperty Difficulty => difficulty; private readonly ReactiveProperty difficulty = new(); - private IDisposable timerDisposable; + private ScrollGameDifficulty generateStageDifficulty; + private IDisposable timerDisposable; + private readonly Dictionary stageDataDict = new(); private void Start() { fenceSubject.AddTo(this); difficulty.AddTo(this); + difficulty.SkipLatestValueOnSubscribe().Subscribe(_ => + { + // 難易度変更時にリソース開放 + Resources.UnloadUnusedAssets(); + Debug.Log($"change difficulty ({difficulty.Value}) and unload resources"); + }).AddTo(this); } - public void SetBeginStages(Transform[] newStages) + + public void SetStageList(ScrollGameStageData[] stageDataList) + { + // ステージリストを取り込み + stageDataDict.Clear(); + foreach (var stageData in stageDataList) + { + if (stageDataDict.ContainsKey(stageData.Difficulty)) + { + continue; + } + stageDataDict.Add(stageData.Difficulty, stageData); + } + } + + public void SetBeginStages() { difficulty.SetValueAndForceNotify(ScrollGameDifficulty.Easy); - stagePrefabs = newStages; stageTarget.DestroyAllChildrens(); stageEndXPos = stageTarget.position.x + beginStageOffset; cacheTargetXPos = stageEndXPos; + lengthIndex = 0; + beginIndex = 0; + generateStageDifficulty = difficulty.Value; GenerateStage(); } private void GenerateStage() { - var selectIndex = UnityEngine.Random.Range(0, stagePrefabs.Length); - for (var i = 0; i < generateStageCount; i++) + // リソース読み込み + stageBeginPrefabList = stageDataDict[generateStageDifficulty].GetBeginStagePrefabs(); + stageRandomPrefabList = stageDataDict[generateStageDifficulty].GetRandomStagePrefabs(); + var stagePrefabs = Array.Empty(); + + var stageCount = stageDataDict[generateStageDifficulty].length; + if (stageCount == 0) { - var stage = Instantiate(stagePrefabs[selectIndex], stageTarget.position + Vector3.left * 100f, Quaternion.identity, stageTarget); - var minPos = float.MaxValue; - var maxPos = float.MinValue; - var holePosList = new List(); - stage.FindAllChildrensComponent(x => + stageCount = generateStageCount; + } + + // beginPrefabsの使用が終わったらrandomに切り替え + if (stageBeginPrefabList.Length > beginIndex) + { + var rangeEnd = Mathf.Min(beginIndex + stageCount, stageBeginPrefabList.Length); + stagePrefabs = stageBeginPrefabList[beginIndex..rangeEnd]; + beginIndex += stagePrefabs.Length; + } + var randomStageCount = stageCount - stagePrefabs.Length; + if (randomStageCount > 0) + { + var prefabs = (stageRandomPrefabList?.Length ?? 0) > 0 ? stageRandomPrefabList : stageBeginPrefabList; + while (randomStageCount > 0) { - var xPos = x.transform.position.x; - minPos = Mathf.Min(minPos, xPos); - maxPos = Mathf.Max(maxPos, xPos); - if (x.ItemType == StageItem.Type.Hole) - { - holePosList.Add(xPos); - } - }); - var xPos = stage.position.x; - var minDiff = minPos - xPos; - var maxDiff = maxPos - xPos; - stage.SetPositionX(stageEndXPos - minDiff); + var count = Mathf.Min(randomStageCount, prefabs.Length); + stagePrefabs = stagePrefabs.Concat(prefabs.RandomChoose(count)).ToArray(); + randomStageCount -= count; + } + } + + lengthIndex += stagePrefabs.Length; + + foreach (var stagePrefab in stagePrefabs) + { + var stage = Instantiate(stagePrefab, stageTarget.position + Vector3.left * 100f, Quaternion.identity, stageTarget).GetComponent(); + stage.transform.SetPositionX(stageEndXPos + stage.transform.position.x - stage.StartXPos); // endPos更新 - stageEndXPos = stage.position.x + maxDiff + partsToPartsOffset; - var cacheStageEndPos = stageEndXPos; + stageEndXPos = stage.EndPos + partsToPartsOffset; + // ステージの破棄 + var cacheStageEndPos = stageEndXPos; Observable.Interval(TimeSpan.FromSeconds(.5f)) .First(_ => cacheStageEndPos < cacheTargetXPos) .Subscribe(_ => { }, () => { - Destroy(stage.gameObject); + Destroy(stage.gameObject, 5f); }).AddTo(stage.gameObject); + // 落とし穴があった場合通知 - holePosList.ToObservable().DelayFrame(1).Subscribe(x => + stage.transform.FindAllChildrensComponent(x => { - fenceSubject.OnNext(stage.position.x + x - xPos); - }).AddTo(this); + if (x.ItemType != StageItem.Type.Hole) + { + return; + } + fenceSubject.OnNext(x.transform.position.x); + }); + } + + // 指定の長さ生成を終えた場合 + if (lengthIndex >= stageDataDict[generateStageDifficulty].length) + { + // 次回ステージ生成の難易度を変更 + generateStageDifficulty = NextDifficulty(generateStageDifficulty); + lengthIndex = 0; + beginIndex = 0; + + // ステージを完走すると難易度変更 + var cacheStageEndPos = stageEndXPos; + Observable.Interval(TimeSpan.FromSeconds(.5f)) + .First(_ => cacheStageEndPos < cacheTargetXPos) + .Subscribe(_ => { }, () => + { + difficulty.Value = NextDifficulty(difficulty.Value); + }).AddTo(this); } } @@ -91,30 +158,16 @@ namespace MyGame.Scenes.MiniGame.Scripts } } - public void StartTimer() + private static ScrollGameDifficulty NextDifficulty(ScrollGameDifficulty value) { - StopTimer(); - timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1)) - .Subscribe(x => - { - if (x >= extraTime) - { - difficulty.Value = ScrollGameDifficulty.Extra; - } - else if (x >= hardTime) - { - difficulty.Value = ScrollGameDifficulty.Hard; - } - else if (x >= normalTime) - { - difficulty.Value = ScrollGameDifficulty.Normal; - } - }).AddTo(this); - } - - public void StopTimer() - { - timerDisposable?.Dispose(); + return value switch + { + ScrollGameDifficulty.Easy => ScrollGameDifficulty.Normal, + ScrollGameDifficulty.Normal => ScrollGameDifficulty.Hard, + ScrollGameDifficulty.Hard => ScrollGameDifficulty.Extra, + ScrollGameDifficulty.Extra => ScrollGameDifficulty.Extra, + _ => throw new ArgumentOutOfRangeException(nameof(value), value, null) + }; } } } \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs index 6eff2b29..52d94329 100644 --- a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs +++ b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs @@ -562,8 +562,8 @@ public sealed class ScrollGameStageData public int length; public ScrollGameDifficulty Difficulty => (ScrollGameDifficulty)difficulty; - private string[] BeginPrefabName => beginPrefabName.Split(','); - private string[] RandomPrefabName => randomPrefabName.Split(','); + private string[] BeginPrefabName => beginPrefabName?.Split(',') ?? Array.Empty(); + private string[] RandomPrefabName => randomPrefabName?.Split(',') ?? Array.Empty(); public Transform[] GetBeginStagePrefabs() { return BeginPrefabName.Select(x => Resources.Load($"ScrollGame/Stages/Stage{x}")).ToArray();