├── ProjectSettings ├── ProjectVersion.txt ├── TagManager.asset ├── AudioManager.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── TimeManager.asset ├── DynamicsManager.asset ├── EditorSettings.asset ├── NetworkManager.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── GraphicsSettings.asset ├── Physics2DSettings.asset ├── ClusterInputManager.asset ├── EditorBuildSettings.asset └── UnityConnectSettings.asset ├── Assets ├── Sound │ ├── beats.aif │ ├── beats.aiff │ ├── beats.aif.meta │ └── beats.aiff.meta ├── Materials │ ├── Down.mat │ ├── Left.mat │ ├── Up.mat │ ├── Right.mat │ ├── NoteBase.mat │ ├── WhiteLine.mat │ ├── WhiteBlink.mat │ ├── GradientWhite.mat │ ├── Up.mat.meta │ ├── Down.mat.meta │ ├── Left.mat.meta │ ├── NoteBase.mat.meta │ ├── Right.mat.meta │ ├── GradientWhite.mat.meta │ ├── WhiteBlink.mat.meta │ └── WhiteLine.mat.meta ├── Plugins │ ├── NAudio.dll │ └── NAudio.dll.meta ├── Animation │ ├── FadeIn.anim │ ├── FadeOut.anim │ ├── Image.controller │ ├── FadeIn.anim.meta │ ├── FadeOut.anim.meta │ └── Image.controller.meta ├── Images │ ├── background.jpg │ ├── backgroundTest.jpg │ ├── Difficulties │ │ ├── easy.png │ │ ├── hard.png │ │ ├── medium.png │ │ ├── beginner.png │ │ ├── challenge.png │ │ ├── Difficulty Menu.psd │ │ ├── easy.png.meta │ │ ├── hard.png.meta │ │ ├── medium.png.meta │ │ ├── beginner.png.meta │ │ ├── challenge.png.meta │ │ └── Difficulty Menu.psd.meta │ ├── scoreBackground.png │ ├── Materials │ │ ├── backgroundTest.mat │ │ └── backgroundTest.mat.meta │ ├── keyboard-right-arrow-button.png │ ├── Materials.meta │ ├── Difficulties.meta │ ├── background.jpg.meta │ ├── scoreBackground.png.meta │ ├── keyboard-right-arrow-button.png.meta │ └── backgroundTest.jpg.meta ├── Scenes │ ├── GameBase.unity │ ├── GameMenu.unity │ ├── ScoreBoard.unity │ ├── GameLoading.unity │ ├── GameBase.unity.meta │ ├── GameLoading.unity.meta │ ├── GameMenu.unity.meta │ └── ScoreBoard.unity.meta ├── Fonts │ ├── Gasalt-Regular.ttf │ └── Gasalt-Regular.ttf.meta ├── Prefabs │ ├── BurstBase.prefab │ ├── SplitLine.prefab │ ├── Burst │ │ ├── Burst_D.prefab │ │ ├── Burst_L.prefab │ │ ├── Burst_R.prefab │ │ ├── Burst_U.prefab │ │ ├── Burst_D.prefab.meta │ │ ├── Burst_L.prefab.meta │ │ ├── Burst_R.prefab.meta │ │ └── Burst_U.prefab.meta │ ├── NodeSubBase.prefab │ ├── Note │ │ ├── DownNote.prefab │ │ ├── LeftNote.prefab │ │ ├── UpNote.prefab │ │ ├── RightNote.prefab │ │ ├── DownNote.prefab.meta │ │ ├── LeftNote.prefab.meta │ │ ├── RightNote.prefab.meta │ │ └── UpNote.prefab.meta │ ├── BlackForFading.prefab │ ├── SuccessTrigger.prefab │ ├── Burst.meta │ ├── Note.meta │ ├── BurstBase.prefab.meta │ ├── SplitLine.prefab.meta │ ├── BlackForFading.prefab.meta │ ├── NodeSubBase.prefab.meta │ └── SuccessTrigger.prefab.meta ├── Fonts.meta ├── Images.meta ├── Plugins.meta ├── Prefabs.meta ├── Scenes.meta ├── Scripts.meta ├── Shader.meta ├── Sound.meta ├── Animation.meta ├── Materials.meta ├── Shader │ ├── SpriteGradient.shader.meta │ └── SpriteGradient.shader └── Scripts │ ├── MetaData.cs.meta │ ├── FontBlinking.cs.meta │ ├── GameController.cs.meta │ ├── MapController.cs.meta │ ├── MenuController.cs.meta │ ├── NAudioPlayer.cs.meta │ ├── NoteController.cs.meta │ ├── ScoreDisplay.cs.meta │ ├── ShowDifficulty.cs.meta │ ├── SuccessTrigger.cs.meta │ ├── LoadingController.cs.meta │ ├── FontBlinking.cs │ ├── LoadingController.cs │ ├── ShowDifficulty.cs │ ├── SuccessTrigger.cs │ ├── NoteController.cs │ ├── ScoreDisplay.cs │ ├── MenuController.cs │ ├── NAudioPlayer.cs │ ├── MapController.cs │ ├── GameController.cs │ └── MetaData.cs ├── Music Rhythm Game.sublime-project ├── .gitignore ├── README.md └── Music Rhythm Game.sublime-workspace /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.6.0f3 2 | -------------------------------------------------------------------------------- /Assets/Sound/beats.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Sound/beats.aif -------------------------------------------------------------------------------- /Assets/Materials/Down.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/Down.mat -------------------------------------------------------------------------------- /Assets/Materials/Left.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/Left.mat -------------------------------------------------------------------------------- /Assets/Materials/Up.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/Up.mat -------------------------------------------------------------------------------- /Assets/Plugins/NAudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Plugins/NAudio.dll -------------------------------------------------------------------------------- /Assets/Sound/beats.aiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Sound/beats.aiff -------------------------------------------------------------------------------- /Assets/Materials/Right.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/Right.mat -------------------------------------------------------------------------------- /Assets/Animation/FadeIn.anim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Animation/FadeIn.anim -------------------------------------------------------------------------------- /Assets/Animation/FadeOut.anim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Animation/FadeOut.anim -------------------------------------------------------------------------------- /Assets/Images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/background.jpg -------------------------------------------------------------------------------- /Assets/Materials/NoteBase.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/NoteBase.mat -------------------------------------------------------------------------------- /Assets/Materials/WhiteLine.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/WhiteLine.mat -------------------------------------------------------------------------------- /Assets/Scenes/GameBase.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Scenes/GameBase.unity -------------------------------------------------------------------------------- /Assets/Scenes/GameMenu.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Scenes/GameMenu.unity -------------------------------------------------------------------------------- /Assets/Scenes/ScoreBoard.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Scenes/ScoreBoard.unity -------------------------------------------------------------------------------- /Assets/Fonts/Gasalt-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Fonts/Gasalt-Regular.ttf -------------------------------------------------------------------------------- /Assets/Images/backgroundTest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/backgroundTest.jpg -------------------------------------------------------------------------------- /Assets/Materials/WhiteBlink.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/WhiteBlink.mat -------------------------------------------------------------------------------- /Assets/Prefabs/BurstBase.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/BurstBase.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/SplitLine.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/SplitLine.prefab -------------------------------------------------------------------------------- /Assets/Scenes/GameLoading.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Scenes/GameLoading.unity -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /Assets/Animation/Image.controller: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Animation/Image.controller -------------------------------------------------------------------------------- /Assets/Images/Difficulties/easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/easy.png -------------------------------------------------------------------------------- /Assets/Images/Difficulties/hard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/hard.png -------------------------------------------------------------------------------- /Assets/Images/scoreBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/scoreBackground.png -------------------------------------------------------------------------------- /Assets/Materials/GradientWhite.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Materials/GradientWhite.mat -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_D.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Burst/Burst_D.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_L.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Burst/Burst_L.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_R.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Burst/Burst_R.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_U.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Burst/Burst_U.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/NodeSubBase.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/NodeSubBase.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Note/DownNote.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Note/DownNote.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Note/LeftNote.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Note/LeftNote.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Note/UpNote.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Note/UpNote.prefab -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/NavMeshAreas.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /Assets/Images/Difficulties/medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/medium.png -------------------------------------------------------------------------------- /Assets/Prefabs/BlackForFading.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/BlackForFading.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/Note/RightNote.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/Note/RightNote.prefab -------------------------------------------------------------------------------- /Assets/Prefabs/SuccessTrigger.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Prefabs/SuccessTrigger.prefab -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/ProjectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /Assets/Images/Difficulties/beginner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/beginner.png -------------------------------------------------------------------------------- /Assets/Images/Difficulties/challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/challenge.png -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/GraphicsSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/Physics2DSettings.asset -------------------------------------------------------------------------------- /Assets/Images/Materials/backgroundTest.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Materials/backgroundTest.mat -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /Assets/Images/keyboard-right-arrow-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/keyboard-right-arrow-button.png -------------------------------------------------------------------------------- /Assets/Images/Difficulties/Difficulty Menu.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s890081tonyhsu/Unity-Rhythm-Game/HEAD/Assets/Images/Difficulties/Difficulty Menu.psd -------------------------------------------------------------------------------- /Assets/Scenes/GameBase.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c07406ab7add034594a531b923fcc9d 3 | timeCreated: 1492829175 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/GameLoading.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 905a88bc799812c49a73bed401c3707b 3 | timeCreated: 1493452659 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/GameMenu.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77a1a6bd15fd5ee468fd5284f5259a14 3 | timeCreated: 1493994435 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/ScoreBoard.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b35cf939559095438eb2d7e03e600bd 3 | timeCreated: 1493399937 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a5a5512e9ff1d145bf5d34760c8263e 3 | folderAsset: yes 4 | timeCreated: 1493452967 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58cbc1575dcd5ba4aa986a462feabcf1 3 | folderAsset: yes 4 | timeCreated: 1492846782 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f82c90c0a3aa61488c542f2302e1ee7 3 | folderAsset: yes 4 | timeCreated: 1494156831 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ae2837715566b949809afdf60ef2748 3 | folderAsset: yes 4 | timeCreated: 1492848171 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e2f74b6964ebd444ac5781f71604243 3 | folderAsset: yes 4 | timeCreated: 1492829175 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 567b93f38033f4a47a76ae0a297fd202 3 | folderAsset: yes 4 | timeCreated: 1492829994 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b39752a86ce9569478c3a4c90b666d94 3 | folderAsset: yes 4 | timeCreated: 1495275178 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Sound.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 796b2a847dd63b644b7338d9c271daec 3 | folderAsset: yes 4 | timeCreated: 1495968940 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Music Rhythm Game.sublime-project: -------------------------------------------------------------------------------- 1 | { 2 | "folders": 3 | [ 4 | { 5 | "path": "./Assets", 6 | "file_exclude_patterns": ["*.meta"] 7 | } 8 | ], 9 | "solution_file": "./Music Rhythm Game.sln" 10 | } -------------------------------------------------------------------------------- /Assets/Animation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 405b75a2fa539804592430a209a14b46 3 | folderAsset: yes 4 | timeCreated: 1493458366 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42ac5173c4ddf8a44bd8a1c9a9521971 3 | folderAsset: yes 4 | timeCreated: 1492832059 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Burst.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b5eda1e692d1dd408ec98738778dab1 3 | folderAsset: yes 4 | timeCreated: 1492881079 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Note.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 140bc42075cdf9841ac18c89ff5a3229 3 | folderAsset: yes 4 | timeCreated: 1492881089 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Images/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3c8148f1e5ec1d40ae0c04714164f7a 3 | folderAsset: yes 4 | timeCreated: 1495114601 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea83e862d1518814383feaf3062ba33b 3 | folderAsset: yes 4 | timeCreated: 1495265136 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/Up.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbc7402871d154e4d829a6dfd2d24f36 3 | timeCreated: 1492833368 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shader/SpriteGradient.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a6b32b24369dbe4eb693a3e2671f635 3 | timeCreated: 1495275168 4 | licenseType: Free 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Animation/FadeIn.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f52fcccc2e95014ab2415cffd4b06c6 3 | timeCreated: 1493459304 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 7400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Animation/FadeOut.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9ca507e2111eaa42ae6730751cb9304 3 | timeCreated: 1493459345 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 7400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/Down.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c16ff164968563f4697a2bb86f267836 3 | timeCreated: 1492833375 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/Left.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f06a60f484074144086fbdb553d23bcf 3 | timeCreated: 1492833353 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/NoteBase.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47e3db857b60f134094ecc1d7e90f2f1 3 | timeCreated: 1492832080 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/Right.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40f36334892bb154ab3edd0bf3ef2bc6 3 | timeCreated: 1492833360 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Animation/Image.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fffda5463fd501b44935a4acc5fa28ea 3 | timeCreated: 1493459304 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 9100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/GradientWhite.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c24558c639595b43bc8e3aab8c98d59 3 | timeCreated: 1495275307 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/WhiteBlink.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9f4a323221e240438bd1d4820153f85 3 | timeCreated: 1492921318 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/WhiteLine.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 133e86e6f56770d42a15b6b81081c7df 3 | timeCreated: 1492861225 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/BurstBase.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 714e4a2da3100074b9721ed171a523f2 3 | timeCreated: 1492872773 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/SplitLine.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2f83aadba92c0f41ad7d30c75e6b567 3 | timeCreated: 1492863934 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/BlackForFading.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6716de9db125bc48a5390de4332d51a 3 | timeCreated: 1493461253 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_D.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 742b1eb33f677bd4788eaa7f0437dc47 3 | timeCreated: 1492873066 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_L.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 422c146b84122a140b1f3e1de4db694c 3 | timeCreated: 1492873063 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_R.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e71d5d62b9682bc4ba007a1823714f56 3 | timeCreated: 1492873072 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Burst/Burst_U.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e61880aeccc734e45bdfaed6e9fd5094 3 | timeCreated: 1492873070 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/NodeSubBase.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fea8c4373bf5094b9fc637efd360061 3 | timeCreated: 1492879813 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Note/DownNote.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8de04a7daf4facd429eed46318bda77d 3 | timeCreated: 1492848188 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Note/LeftNote.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2ac76b4cc9134646b71fa6371497a74 3 | timeCreated: 1492848185 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Note/RightNote.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a53d5f42577f5164baad2fd5cb235a44 3 | timeCreated: 1492848193 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Note/UpNote.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 166b7de903f67064dad36fc3e7251f1c 3 | timeCreated: 1492848190 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/SuccessTrigger.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e05a08d7d2bbe043a75422bd73d5ef5 3 | timeCreated: 1492869835 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Images/Materials/backgroundTest.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d12b6a38946a1d49b14798d6fc88ecb 3 | timeCreated: 1495114601 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/MetaData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cc657e9d76795e45879617ce360ebd1 3 | timeCreated: 1494353214 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/FontBlinking.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f15ca1d08607d34290e04551f7b8868 3 | timeCreated: 1493453130 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/GameController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d152c9db255c0014980971932742d152 3 | timeCreated: 1492848820 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MapController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13523b3a8eb9c6042a3398ea09eacf21 3 | timeCreated: 1494361361 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MenuController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c5b941f2cbb9b542bdd46d269795132 3 | timeCreated: 1493996103 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/NAudioPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd76b31005d9c674dbc5719bd13152ef 3 | timeCreated: 1494157368 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/NoteController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49d203e392c05be4a96a7831069c16b4 3 | timeCreated: 1492829982 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ScoreDisplay.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cac090e9f74fd64eb58a244dafe2ab1 3 | timeCreated: 1493468304 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ShowDifficulty.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffef7bf9d0a0785498ff64363a2ed264 3 | timeCreated: 1495276482 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SuccessTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1456f3dadcc68ac4e93df8c69a70bfaa 3 | timeCreated: 1492867563 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/LoadingController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d3eefb63d59dd04ba047ebedf0bc40e 3 | timeCreated: 1493464611 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Fonts/Gasalt-Regular.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d990831910e1ad41909024dc4782f18 3 | timeCreated: 1494005205 4 | licenseType: Free 5 | TrueTypeFontImporter: 6 | serializedVersion: 4 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 0 10 | characterPadding: 1 11 | includeFontData: 1 12 | fontName: Gasalt 13 | fontNames: 14 | - Gasalt 15 | fallbackFontReferences: [] 16 | customCharacters: 17 | fontRenderingMode: 0 18 | ascentCalculationMode: 1 19 | userData: 20 | assetBundleName: 21 | assetBundleVariant: 22 | -------------------------------------------------------------------------------- /Assets/Sound/beats.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87b5a13f09e0d604da5664bcca79dc1b 3 | timeCreated: 1495968943 4 | licenseType: Free 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 0 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 1 13 | conversionMode: 0 14 | platformSettingOverrides: {} 15 | forceToMono: 0 16 | normalize: 1 17 | preloadAudioData: 1 18 | loadInBackground: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Sound/beats.aiff.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fd579de50f91fd4b9be3badd3566da4 3 | timeCreated: 1495970222 4 | licenseType: Free 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 0 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 1 13 | conversionMode: 0 14 | platformSettingOverrides: {} 15 | forceToMono: 0 16 | normalize: 1 17 | preloadAudioData: 1 18 | loadInBackground: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /[Ss]ongs/ 7 | /Assets/AssetStoreTools* 8 | 9 | # Visual Studio 2015 cache directory 10 | /.vs/ 11 | 12 | # Autogenerated VS/MD/Consulo solution and project files 13 | ExportedObj/ 14 | .consulo/ 15 | *.csproj 16 | *.unityproj 17 | *.sln 18 | *.suo 19 | *.tmp 20 | *.user 21 | *.userprefs 22 | *.pidb 23 | *.booproj 24 | *.svd 25 | *.pdb 26 | 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk 36 | *.unitypackage -------------------------------------------------------------------------------- /Assets/Scripts/FontBlinking.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | public class FontBlinking : MonoBehaviour { 7 | public float minOpacity; 8 | public float r; 9 | 10 | private float angle; 11 | private Text loadingText; 12 | 13 | void Start () { 14 | loadingText = GetComponent(); 15 | angle = 0; 16 | } 17 | 18 | void FixedUpdate () { 19 | float newAlpha = Mathf.Clamp(Mathf.Cos(angle) * r + minOpacity + r, minOpacity, 1.0F); 20 | Color c = new Vector4(loadingText.color.r, loadingText.color.g, loadingText.color.b, newAlpha); 21 | loadingText.color = c; 22 | angle += 0.05f; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Plugins/NAudio.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb389ce5ddb86d940a399940960d8ee3 3 | timeCreated: 1494156835 4 | licenseType: Free 5 | PluginImporter: 6 | serializedVersion: 2 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | isOverridable: 0 11 | platformData: 12 | data: 13 | first: 14 | Any: 15 | second: 16 | enabled: 1 17 | settings: {} 18 | data: 19 | first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | data: 26 | first: 27 | Windows Store Apps: WindowsStoreApps 28 | second: 29 | enabled: 0 30 | settings: 31 | CPU: AnyCPU 32 | userData: 33 | assetBundleName: 34 | assetBundleVariant: 35 | -------------------------------------------------------------------------------- /Assets/Scripts/LoadingController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.SceneManagement; 6 | 7 | public class LoadingController : MonoBehaviour { 8 | public Image black; 9 | public Animator anim; 10 | 11 | private MapController mapController; 12 | 13 | void Start () { 14 | GameObject mapControllerObject = GameObject.FindWithTag("MapController"); 15 | if(mapControllerObject != null) 16 | mapController = mapControllerObject.GetComponent(); 17 | if(mapController == null) 18 | Debug.Log("Cannot find 'MapController' script"); 19 | } 20 | 21 | void Update () { 22 | if(mapController._loadComplete) 23 | StartCoroutine (loadingEnd ()); 24 | } 25 | 26 | IEnumerator loadingEnd(){ 27 | yield return new WaitForSeconds (1); 28 | anim.SetBool("Fade", true); 29 | yield return new WaitUntil(() => black.color.a == 1); 30 | SceneManager.LoadScene("GameMenu", LoadSceneMode.Single); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Scripts/ShowDifficulty.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | public class ShowDifficulty : MonoBehaviour { 7 | public Image _selectorImage; 8 | public RawImage _beginnerImage; 9 | public RawImage _easyImage; 10 | public RawImage _mediumImage; 11 | public RawImage _hardImage; 12 | public RawImage _challengeImage; 13 | 14 | void Start() { 15 | } 16 | 17 | public void SetDifficulty(MetaData map) { 18 | SetOpacity(_beginnerImage, map.beginnerExists); 19 | SetOpacity(_easyImage, map.easyExists); 20 | SetOpacity(_mediumImage, map.beginnerExists); 21 | SetOpacity(_hardImage, map.hardExists); 22 | SetOpacity(_challengeImage, map.challengeExists); 23 | } 24 | 25 | void SetOpacity(RawImage image, bool exist) { 26 | float newAlpha = exist ? 1.0f : 0.2f; 27 | Color c = new Vector4(image.color.r, image.color.g, image.color.b, newAlpha); 28 | image.color = c; 29 | } 30 | 31 | public void SetSelectorPosition(int currentDifficulty) { 32 | Vector3 newPos = _selectorImage.GetComponent().localPosition; 33 | newPos.y = -40 * currentDifficulty; 34 | _selectorImage.GetComponent().localPosition = newPos; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Scripts/SuccessTrigger.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SuccessTrigger : MonoBehaviour { 6 | 7 | public KeyCode activateString; 8 | public Renderer blinkSubBase; 9 | public string holdedKey = "n"; 10 | public Material noteBase; 11 | public Material whiteBlink; 12 | 13 | private Rigidbody rb; 14 | 15 | void Start () { 16 | rb = GetComponent(); 17 | blinkSubBase.sharedMaterial = noteBase; 18 | } 19 | 20 | void FixedUpdate () { 21 | if (Input.GetKeyDown(activateString) && (holdedKey == "n")) { 22 | rb.transform.position = new Vector3(rb.transform.position.x, rb.transform.position.y + 1, rb.transform.position.z); 23 | blinkSubBase.sharedMaterial = whiteBlink; 24 | 25 | StartCoroutine(retractCollider ()); 26 | // holdedKey = "y"; 27 | // This is extends for hold notes... 28 | } 29 | 30 | if(Input.GetKeyUp(activateString)) { 31 | holdedKey = "n"; 32 | } 33 | } 34 | 35 | IEnumerator retractCollider () { 36 | if(holdedKey == "y") { 37 | yield return new WaitForSeconds(.1f); 38 | StartCoroutine(retractCollider ()); 39 | } 40 | if(holdedKey == "n") { 41 | yield return new WaitForSeconds(.1f); 42 | rb.transform.position = new Vector3(rb.transform.position.x, rb.transform.position.y - 1, rb.transform.position.z); 43 | blinkSubBase.sharedMaterial = noteBase; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Images/background.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31ab4beaeb7d7bd44bdc619ba01228c3 3 | timeCreated: 1495184378 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/easy.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12e5b4df33b5d8f49b383adcb11d96b3 3 | timeCreated: 1495265137 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/hard.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c3b932c4f14c2048a17e29e73f72c91 3 | timeCreated: 1495265137 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/medium.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 912cb7c8604688849bbf1fc6d00b7ec2 3 | timeCreated: 1495265138 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/scoreBackground.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1b94a56091c78e4f94e7a210167a285 3 | timeCreated: 1495258638 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/beginner.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e4d530e2756a1749bec72de7967395b 3 | timeCreated: 1495265138 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/challenge.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 644c18536f7d6004e9fc13afeb06f80b 3 | timeCreated: 1495265138 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/Difficulties/Difficulty Menu.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25c3d41e3ef7dce498b6fe8b32d2c643 3 | timeCreated: 1495265137 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Images/keyboard-right-arrow-button.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7249ddf0944da2b49be9ecd388635aec 3 | timeCreated: 1494002166 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Scripts/NoteController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class NoteController : MonoBehaviour { 6 | public float speed; 7 | public AudioClip impact; 8 | 9 | public GameObject successBurst; 10 | 11 | private Rigidbody rb; 12 | private AudioSource audioS; 13 | private GameController gameController; 14 | 15 | void Start () 16 | { 17 | rb = GetComponent(); 18 | rb.velocity = new Vector3(0, 0, speed); 19 | audioS = GetComponent(); 20 | GameObject gameControllerObject = GameObject.FindWithTag("GameController"); 21 | if(gameControllerObject != null) 22 | gameController = gameControllerObject.GetComponent(); 23 | if(gameController == null) 24 | Debug.Log("Cannot find 'GameController' script"); 25 | // Debug.Log(GetInstanceID() + "'s start time: " + gameController.getSongTime()); 26 | } 27 | 28 | void OnTriggerEnter (Collider other) { 29 | switch(other.gameObject.tag){ 30 | case "FailCollector": 31 | audioS.PlayOneShot(impact, 0.7F); 32 | Debug.Log("Failed!"); 33 | gameController.comboFail(GetInstanceID()); 34 | StartCoroutine(destroySelf ()); 35 | break; 36 | case "SuccessTrigger": 37 | if(this.gameObject.activeSelf == false) 38 | break; 39 | audioS.PlayOneShot(impact, 0.7F); 40 | Debug.Log("Success!"); 41 | GameObject burst = Instantiate(successBurst, transform.position, successBurst.transform.rotation); 42 | gameController.comboSuccess(); 43 | Destroy (burst, 1); 44 | StartCoroutine(destroySelf ()); 45 | break; 46 | default: 47 | break; 48 | } 49 | } 50 | IEnumerator destroySelf() { 51 | this.gameObject.SetActive(false); 52 | yield return new WaitForSeconds(2); 53 | Destroy(rb.gameObject); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Assets/Shader/SpriteGradient.shader: -------------------------------------------------------------------------------- 1 | // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' 2 | // Ref: http://answers.unity3d.com/questions/1195044/gradient-transparent.html 3 | 4 | Shader "Unlit/SpriteGradient" 5 | { 6 | Properties{ 7 | _TopColor("Color1", Color) = (1,1,1,1) 8 | _BottomColor("Color2", Color) = (1,1,1,1) 9 | _MainTex ("Main Texture", 2D) = "white" {} 10 | } 11 | SubShader 12 | { 13 | Tags { "RenderType" = "Transparent" "Queue" = "Transparent" } 14 | Pass 15 | { 16 | ZWrite Off 17 | Blend SrcAlpha OneMinusSrcAlpha 18 | 19 | CGPROGRAM 20 | #pragma vertex vert 21 | #pragma fragment frag 22 | 23 | #include "UnityCG.cginc" 24 | 25 | sampler2D _MainTex; 26 | float4 _MainTex_ST; 27 | 28 | fixed4 _TopColor; 29 | fixed4 _BottomColor; 30 | half _Value; 31 | 32 | struct v2f { 33 | float4 position : SV_POSITION; 34 | fixed4 color : COLOR; 35 | float2 uv : TEXCOORD0; 36 | }; 37 | 38 | v2f vert (appdata_full v) 39 | { 40 | v2f o; 41 | o.position = UnityObjectToClipPos (v.vertex); 42 | o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); 43 | o.color = lerp (_TopColor,_BottomColor, v.texcoord.x); 44 | // change the direction to x for xAxis gradient 45 | return o; 46 | } 47 | 48 | fixed4 frag(v2f i) : SV_Target 49 | { 50 | float4 color; 51 | color.rgb = i.color.rgb; 52 | color.a = tex2D (_MainTex, i.uv).a * i.color.a; 53 | return color; 54 | } 55 | ENDCG 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Assets/Images/backgroundTest.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 293fa52b502b113499cb511f5d920e9d 3 | timeCreated: 1492847269 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Assets/Scripts/ScoreDisplay.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.SceneManagement; 6 | 7 | public class ScoreDisplay : MonoBehaviour { 8 | public Text titleText; 9 | public Text scoreText; 10 | public Text maxComboText; 11 | public Text rankText; 12 | public Text percentageText; 13 | public Image black; 14 | public Animator anim; 15 | 16 | private string[] rankTextList = {"E", "D", "C", "B", "A-", "A+", "AA", "AAA"}; 17 | private float[] rankCompare = {0.5f, 0.55f, 0.6f, 0.7f, 0.85f, 0.95f, 1.0f}; 18 | private List rankTextColor = new List() {Color.red, Color.magenta, Color.blue, Color.blue, Color.green, Color.green, Color.cyan, Color.gray}; 19 | 20 | void Start () { 21 | if(PlayerPrefs.HasKey("score")) 22 | scoreText.text = "Score: " + PlayerPrefs.GetInt("score").ToString().PadLeft(8, '0'); 23 | if(PlayerPrefs.HasKey("maxCombo")) 24 | maxComboText.text = "Max Combo: " + PlayerPrefs.GetInt("maxCombo"); 25 | if(PlayerPrefs.HasKey("playerHitted") && PlayerPrefs.HasKey("totalBeats")) { 26 | int hitted = PlayerPrefs.GetInt("playerHitted"); 27 | int total = PlayerPrefs.GetInt("totalBeats"); 28 | float percent = (float)hitted / total; 29 | percentageText.text = (Mathf.Round(percent * 100.0f)).ToString() + "%"; 30 | int rankNum = getRank(percent); 31 | rankText.text = rankTextList[rankNum]; 32 | rankText.color = rankTextColor[rankNum]; 33 | } 34 | } 35 | 36 | void FixedUpdate() { 37 | if(Input.GetKeyDown(KeyCode.Return)) StartCoroutine(enterMenu()); 38 | } 39 | 40 | int getRank(float percent) { 41 | int rankNum = 0; 42 | for(int i = 0; i < rankCompare.Length; i++){ 43 | if(percent >= rankCompare[i]) rankNum = i; 44 | } 45 | return rankNum; 46 | } 47 | 48 | void Update () { 49 | 50 | } 51 | 52 | IEnumerator enterMenu(){ 53 | yield return new WaitForSeconds (1); 54 | anim.SetBool("Fade", true); 55 | yield return new WaitUntil(() => black.color.a == 1); 56 | SceneManager.LoadScene("GameMenu", LoadSceneMode.Single); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Assets/Scripts/MenuController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | using UnityEngine.SceneManagement; 7 | 8 | public class MenuController : MonoBehaviour { 9 | public Text MetaDataName; 10 | public Text MetaDataArtist; 11 | public RawImage BannerBG; 12 | public Image difficultySelector; 13 | public Image black; 14 | public Animator anim; 15 | 16 | private MapController mapController; 17 | private ShowDifficulty showDifficulty; 18 | private string nowPlayingPath; 19 | private bool holdKey; 20 | private float MaxVol; 21 | 22 | void Start () { 23 | GameObject mapControllerObject = GameObject.FindWithTag("MapController"); 24 | if(mapControllerObject != null) 25 | mapController = mapControllerObject.GetComponent(); 26 | if(mapController == null) 27 | Debug.Log("Cannot find 'MapController' script"); 28 | showDifficulty = difficultySelector.GetComponent(); 29 | holdKey = false; 30 | loadSong(); 31 | } 32 | 33 | void FixedUpdate () { 34 | float changeSong = Input.GetAxis("Horizontal"); 35 | float changeDifficulty = Input.GetAxis("Vertical"); 36 | if(changeSong != 0 && !holdKey) StartCoroutine(shiftSong(changeSong > 0)); 37 | if(changeDifficulty != 0 && !holdKey) StartCoroutine(shiftDifficulty(changeDifficulty < 0)); 38 | if(Input.GetKeyDown(KeyCode.Return)) StartCoroutine(enterGame()); 39 | } 40 | 41 | IEnumerator shiftSong(bool right){ 42 | holdKey = true; 43 | mapController.shiftSong(right); 44 | loadSong(); 45 | yield return new WaitForSeconds(.3f); 46 | holdKey = false; 47 | } 48 | 49 | IEnumerator shiftDifficulty(bool down){ 50 | holdKey = true; 51 | mapController.shiftDifficulties(down); 52 | setDifficultyShow(); 53 | yield return new WaitForSeconds(.3f); 54 | holdKey = false; 55 | } 56 | 57 | void loadSong(){ 58 | try{ 59 | if (!mapController._nowPlaying.isPlaying) mapController._nowPlaying.Stop(); 60 | MetaData current = mapController.getCurrentSong(); 61 | MetaDataName.text = current.title; 62 | MetaDataArtist.text = current.artist; 63 | showDifficulty.SetDifficulty(current); 64 | setDifficultyShow(); 65 | if(current.musicPath != "") 66 | StartCoroutine (mapController.playSampleAudio()); 67 | StartCoroutine (loadBg(current.bannerPath)); 68 | }catch(Exception e){ 69 | MetaDataName.text = "No songs are loaded."; 70 | Debug.Log(e); 71 | } 72 | } 73 | 74 | void setDifficultyShow(){ 75 | showDifficulty.SetSelectorPosition(mapController.getCurrentDifficulty()); 76 | } 77 | 78 | IEnumerator loadBg(string path){ 79 | Color imageShow = BannerBG.color; 80 | if(path == ""){ 81 | imageShow.a = 0; 82 | BannerBG.color = imageShow; 83 | }else{ 84 | BannerBG.color = imageShow; 85 | Texture2D tex; 86 | tex = new Texture2D(4, 4, TextureFormat.DXT5, false); 87 | WWW www = new WWW("file://" + path.Replace("\\", "/")); 88 | yield return www; 89 | www.LoadImageIntoTexture(tex); 90 | BannerBG.texture = tex; 91 | imageShow.a = 1; 92 | BannerBG.color = imageShow; 93 | } 94 | } 95 | IEnumerator enterGame(){ 96 | mapController._nowPlaying.Stop(); 97 | mapController._nowPlaying.time = 0; 98 | yield return new WaitForSeconds (1); 99 | anim.SetBool("Fade", true); 100 | yield return new WaitUntil(() => black.color.a == 1); 101 | SceneManager.LoadScene("GameBase", LoadSceneMode.Single); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Music Rhythm Game 2 | ==== 3 | 4 | Introduction 5 | ---- 6 | 7 | This is a rhythm game created in unity with C#. The idea is from StepMania, which is the game I play when I was a high school student. 8 | 9 | All the game need is to make a rhythm that fits the song needs. So we have song custom stage called beat map, it will follow the song's beats if the creator is good at finding the song's beats. 10 | 11 | ---- 12 | 13 | 這是一個用Unity做的音樂遊戲,使用C#撰寫程式內容,靈感由來是我高中玩過的StepMania。 14 | 15 | 這種節奏遊戲的目標就是敲打出音樂中的節奏,而打節奏的關卡我們稱之為譜面。如果製譜者設計正常的話,搭配音樂會是一個完美的節奏打擊。 16 | 17 | Features 18 | ---- 19 | 20 | - Reading StepMania's beatmap(.sm file) 21 | - Support playing .ogg and .mp3 songfile 22 | - Realtime generate beats note from beatmap(same as StepMania) 23 | - Combo will make you to get higher score(same as StepMania) 24 | 25 | ---- 26 | 27 | - 讀取StepMania的譜面檔(.sm檔) 28 | - 能夠播放ogg檔跟mp3檔 29 | - 根據譜面動態產生節奏符號(跟StepMania一樣) 30 | - 打擊連鎖可以獲得較多分數(跟StepMania一樣) 31 | 32 | Interface & how to play 33 | ---- 34 | 35 | - Loading: loading the songs 36 | - Menu: choosing the song and the difficulties 37 | - Game: for playing 38 | - Scoreboard: showing the score 39 | 40 | Before you play, you should make sure there is a folder called "Songs", this folder will hold all the beatsmap that you want to choose to play. 41 | 42 | After the loading is complete, you can find the songs and difficulties, choose one song by press left and right arrow key, one difficulty by press up and down arrow key, then press "Enter". 43 | 44 | In the game, use "D" as left note, "F" as down note, "J" as up note and "K" as right note. Press the right button when the note is on the bottom of the screen, then you'll get the score. 45 | 46 | At the end of the song, it will show your score, when you press "Enter", you can go back to the menu and choose another one. 47 | 48 | ---- 49 | 50 | - 讀取:用來遮蔽背景讀取譜面內容 51 | - 選單:選擇歌曲跟難度 52 | - 遊戲:遊戲中畫面 53 | - 得分版:顯示你的分數 54 | 55 | 在遊戲之前,先確認根目錄下是否有一個叫做Songs的資料夾,那是用來放置遊戲用譜面的。 56 | 57 | 在遊戲讀取結束後,他會顯示出你有的歌曲跟譜面難度。使用左右選擇歌曲,上下選擇難度,按下Enter就可以開始玩了。 58 | 59 | 遊戲中你要使用D、F、J、K四個按鈕。在符號到達底端的時候按下對應的按鈕就可以得到分數。 60 | 61 | 在歌曲結束後,他會顯示你的分數,按下Enter之後就可以回到選單再選別首。 62 | 63 | Technics 64 | ---- 65 | 66 | SM files is special because it writes song's tag and footsteps. We need to use finite state machine to make sure that the program is trying to read tag or footsteps. 67 | 68 | And the footsteps is like we know in music class. It uses measure as we draw bars on footsteps. How we process quarter note, eighth note, sixteen note is to cut a bar into pieces, and the mark on the bar. We only need to mark the start of the note so that the player can make the right place to key. 69 | 70 | There is a gameobject which holdes all songs and won't be destroyed when changing scene until you close the game. 71 | 72 | Unity's UI doesn't have built in linear gradient color for text background. So I find a shader to show that effects. 73 | 74 | On unity personal in windows, we can only play ogg(mp3 for android) file when we dynamic read the file. So I find a plugin to play mp3 file on windows. 75 | 76 | ---- 77 | 78 | SM檔具有歌曲的相關資料跟譜面,所以我們用狀態機來偵測我們是在讀歌曲資料還是譜面資料。 79 | 80 | 而譜面資料就跟音樂課上的五線譜一樣,五線譜上的每一行在檔案內被稱為measure。我們會把一行切成很多部分來標記音符,而標記只需要音符的開頭即可,這樣在遊戲中的玩家就可以敲對節拍。 81 | 82 | 我們有一個遊戲物件可以保管所有歌曲,他不會因為切換場景而被摧毀,直到你關閉遊戲。 83 | 84 | Unity UI內建沒有對文字背景的漸層,所以我們找到一個現成的漸層來輔助。 85 | 86 | Unity personal 在windows上只允許播放ogg(在android上只能播mp3),所以我們找了一個插件來讓它支援在windows 上播放mp3。 87 | 88 | Reference 89 | ---- 90 | 91 | - [How to create a Unity Rhythm Game Part 1: Parsing the .SM file](http://blog.phantombadger.com/2016/05/23/how-to-create-unity-rhythm-game-part-1-parsing-the-sm-file/) 92 | - [How to create a Unity Rhythm Game Part 2: Generating the Steps](http://blog.phantombadger.com/2016/05/26/how-to-create-a-unity-rhythm-game-part-2-generating-the-steps/) -------------------------------------------------------------------------------- /Assets/Scripts/NAudioPlayer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.IO; 3 | using System; 4 | using NAudio; 5 | using NAudio.Wave; 6 | 7 | public static class NAudioPlayer { 8 | public static AudioClip FromMp3Data(byte[] data) 9 | { 10 | // Load the data into a stream 11 | MemoryStream mp3stream = new MemoryStream(data); 12 | // Convert the data in the stream to WAV format 13 | Mp3FileReader mp3audio = new Mp3FileReader(mp3stream); 14 | WaveStream waveStream = WaveFormatConversionStream.CreatePcmStream(mp3audio); 15 | // Convert to WAV data 16 | WAV wav = new WAV(AudioMemStream(waveStream).ToArray()); 17 | Debug.Log(wav); 18 | AudioClip audioClip = AudioClip.Create("testSound", wav.SampleCount, 1,wav.Frequency, false); 19 | audioClip.SetData(wav.LeftChannel, 0); 20 | // Return the clip 21 | return audioClip; 22 | } 23 | 24 | private static MemoryStream AudioMemStream(WaveStream waveStream) 25 | { 26 | MemoryStream outputStream = new MemoryStream(); 27 | using (WaveFileWriter waveFileWriter = new WaveFileWriter(outputStream, waveStream.WaveFormat)) 28 | { 29 | byte[] bytes = new byte[waveStream.Length]; 30 | waveStream.Position = 0; 31 | waveStream.Read(bytes, 0, Convert.ToInt32(waveStream.Length)); 32 | waveFileWriter.Write(bytes, 0, bytes.Length); 33 | waveFileWriter.Flush(); 34 | } 35 | return outputStream; 36 | } 37 | } 38 | 39 | /* From http://answers.unity3d.com/questions/737002/wav-byte-to-audioclip.html */ 40 | public class WAV { 41 | 42 | // convert two bytes to one float in the range -1 to 1 43 | static float bytesToFloat(byte firstByte, byte secondByte) { 44 | // convert two bytes to one short (little endian) 45 | short s = (short)((secondByte << 8) | firstByte); 46 | // convert to range from -1 to (just below) 1 47 | return s / 32768.0F; 48 | } 49 | 50 | static int bytesToInt(byte[] bytes,int offset=0){ 51 | int value=0; 52 | for(int i=0;i<4;i++){ 53 | value |= ((int)bytes[offset+i])<<(i*8); 54 | } 55 | return value; 56 | } 57 | // properties 58 | public float[] LeftChannel{get; internal set;} 59 | public float[] RightChannel{get; internal set;} 60 | public int ChannelCount {get;internal set;} 61 | public int SampleCount {get;internal set;} 62 | public int Frequency {get;internal set;} 63 | 64 | public WAV(byte[] wav){ 65 | 66 | // Determine if mono or stereo 67 | ChannelCount = wav[22]; // Forget byte 23 as 99.999% of WAVs are 1 or 2 channels 68 | 69 | // Get the frequency 70 | Frequency = bytesToInt(wav,24); 71 | 72 | // Get past all the other sub chunks to get to the data subchunk: 73 | int pos = 12; // First Subchunk ID from 12 to 16 74 | 75 | // Keep iterating until we find the data chunk (i.e. 64 61 74 61 ...... (i.e. 100 97 116 97 in decimal)) 76 | while(!(wav[pos]==100 && wav[pos+1]==97 && wav[pos+2]==116 && wav[pos+3]==97)) { 77 | pos += 4; 78 | int chunkSize = wav[pos] + wav[pos + 1] * 256 + wav[pos + 2] * 65536 + wav[pos + 3] * 16777216; 79 | pos += 4 + chunkSize; 80 | } 81 | pos += 8; 82 | 83 | // Pos is now positioned to start of actual sound data. 84 | SampleCount = (wav.Length - pos)/2; // 2 bytes per sample (16 bit sound mono) 85 | if (ChannelCount == 2) SampleCount /= 2; // 4 bytes per sample (16 bit stereo) 86 | 87 | // Allocate memory (right will be null if only mono sound) 88 | LeftChannel = new float[SampleCount]; 89 | if (ChannelCount == 2) RightChannel = new float[SampleCount]; 90 | else RightChannel = null; 91 | 92 | // Write to double array/s: 93 | int i=0; 94 | while (pos < wav.Length) { 95 | LeftChannel[i] = bytesToFloat(wav[pos], wav[pos + 1]); 96 | pos += 2; 97 | if (ChannelCount == 2) { 98 | RightChannel[i] = bytesToFloat(wav[pos], wav[pos + 1]); 99 | pos += 2; 100 | } 101 | i++; 102 | } 103 | } 104 | 105 | public override string ToString () 106 | { 107 | return string.Format ("[WAV: LeftChannel={0}, RightChannel={1}, ChannelCount={2}, SampleCount={3}, Frequency={4}]", LeftChannel, RightChannel, ChannelCount, SampleCount, Frequency); 108 | } 109 | } -------------------------------------------------------------------------------- /Assets/Scripts/MapController.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | public class MapController : MonoBehaviour { 7 | public bool _loadComplete; 8 | public AudioSource _nowPlaying; 9 | public bool _isStarted; 10 | 11 | private List metaList; 12 | private int songIndex; 13 | private List difficulties; 14 | private int difficultyIndex; 15 | private List startBPMs; 16 | private int nextBPMIndex; 17 | 18 | void Start () { 19 | DontDestroyOnLoad(this); 20 | _loadComplete = false; 21 | metaList = new List(); 22 | DirectoryInfo baseDir = new DirectoryInfo("Songs"); 23 | DirectoryInfo[] dirArray = baseDir.GetDirectories(); 24 | foreach (DirectoryInfo subDir in dirArray) { 25 | FileInfo[] smFiles = subDir.GetFiles("*.sm"); 26 | if(smFiles.Length == 1) { 27 | MetaData newSong = new MetaData(subDir, smFiles[0].FullName); 28 | metaList.Add(newSong); 29 | } 30 | } 31 | _loadComplete = true; 32 | _isStarted = false; 33 | songIndex = 0; 34 | difficulties = new List(); 35 | startBPMs = metaList[songIndex].bpms; 36 | nextBPMIndex = (startBPMs.Count > 1) ? 1 : 0; 37 | setDifficulties(metaList[songIndex]); 38 | } 39 | 40 | void setDifficulties(MetaData map) { 41 | difficulties.Clear(); 42 | if(map.beginnerExists) difficulties.Add(0); 43 | if(map.easyExists) difficulties.Add(1); 44 | if(map.beginnerExists) difficulties.Add(2); 45 | if(map.hardExists) difficulties.Add(3); 46 | if(map.challengeExists) difficulties.Add(4); 47 | difficultyIndex = 0; 48 | } 49 | 50 | public List getSongList() { 51 | return metaList; 52 | } 53 | 54 | public List getDifficultyList() { 55 | return difficulties; 56 | } 57 | 58 | public MetaData getCurrentSong() { 59 | return metaList[songIndex]; 60 | } 61 | 62 | public int getCurrentDifficulty() { 63 | return difficulties[difficultyIndex]; 64 | } 65 | 66 | public NoteData getCurrentStage() { 67 | switch(difficulties[difficultyIndex]) { 68 | case 0: 69 | return metaList[songIndex].beginner; 70 | case 1: 71 | return metaList[songIndex].easy; 72 | case 2: 73 | return metaList[songIndex].medium; 74 | case 3: 75 | return metaList[songIndex].hard; 76 | case 4: 77 | return metaList[songIndex].challenge; 78 | default: 79 | return new NoteData(); 80 | } 81 | } 82 | 83 | public float getCurrentBPM(float gamePos) { 84 | if(startBPMs.Count == 1) return startBPMs[0].mapBPM; 85 | if(startBPMs[nextBPMIndex].mapPos <= gamePos) 86 | nextBPMIndex += 1; 87 | return startBPMs[nextBPMIndex - 1].mapBPM; 88 | } 89 | 90 | public float getCurrentOffset() { 91 | return metaList[songIndex].offset; 92 | } 93 | 94 | public void shiftSong(bool right) { 95 | int length = metaList.Count; 96 | songIndex += right ? 1 : -1; 97 | if(songIndex == -1) songIndex = length - 1; 98 | else if(songIndex == length) songIndex = 0; 99 | startBPMs = metaList[songIndex].bpms; 100 | setDifficulties(metaList[songIndex]); 101 | } 102 | 103 | public void shiftDifficulties(bool down) { 104 | int length = difficulties.Count; 105 | difficultyIndex += down ? 1 : -1; 106 | if(difficultyIndex == -1) difficultyIndex = length - 1; 107 | else if(difficultyIndex == length) difficultyIndex = 0; 108 | } 109 | 110 | public float getSongTimer() { 111 | return _nowPlaying.time; 112 | } 113 | 114 | public IEnumerator playSampleAudio() { 115 | string path = metaList[songIndex].musicPath; 116 | float timeStart = metaList[songIndex].sampleStart; 117 | float timeDuration = metaList[songIndex].sampleLength; 118 | int playingIndex = songIndex; 119 | WWW www = new WWW("file://" + path.Replace("\\", "/")); 120 | yield return www; 121 | _nowPlaying.clip = (path.LastIndexOf(".mp3") != -1) ? NAudioPlayer.FromMp3Data(www.bytes) : www.GetAudioClip(false); 122 | while(playingIndex == songIndex) { 123 | _nowPlaying.volume = 1; 124 | _nowPlaying.time = timeStart; 125 | _nowPlaying.Play(); 126 | while(_nowPlaying.time < (timeStart + timeDuration - 1)) { 127 | yield return new WaitForSeconds(0.01f); 128 | if(playingIndex != songIndex) break; 129 | } 130 | float t = _nowPlaying.volume; 131 | while (t > 0.0f) { 132 | if(playingIndex != songIndex) break; 133 | t -= 0.01f; 134 | _nowPlaying.volume = t; 135 | yield return new WaitForSeconds(0.01f); 136 | } 137 | if(playingIndex != songIndex) break; 138 | _nowPlaying.Stop(); 139 | } 140 | } 141 | 142 | public IEnumerator playAudio(float offset) { 143 | _isStarted = true; 144 | yield return new WaitForSeconds(offset); 145 | _nowPlaying.Play(); 146 | Debug.Log("playing The audio"); 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /Assets/Scripts/GameController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.SceneManagement; 6 | 7 | [System.Serializable] 8 | public class NoteObj{ 9 | public GameObject leftNote, downNote, upNote, rightNote; 10 | } 11 | 12 | public class GameController : MonoBehaviour { 13 | 14 | // List whichNote = new List() {1, 2, 2, 8, 2, 4, 4, 1, 2, 1, 4, 2, 4, 4, 8, 4, 2, 4, 8, 8, 4, 2, 4, 4}; 15 | List xPosList = new List() {-3, -1, 1, 3}; 16 | 17 | public float offset; 18 | public float distance; 19 | public NoteObj notes; 20 | public Text scoreText; 21 | public Text comboText; 22 | public Image black; 23 | public Animator anim; 24 | 25 | private MapController mapController; 26 | private NoteData thisStage; 27 | private int waveMark; 28 | private int noteCnt; 29 | private int score; 30 | private int hitted; 31 | private int[] combo; 32 | 33 | private bool isInit; 34 | private bool isBarEnd; 35 | private int barCount; 36 | private float arrowSpeed; 37 | private float barExecutedTime; 38 | private float barTime; 39 | private float songTimer; 40 | private float timeOffset; 41 | 42 | void Start () { 43 | GameObject mapControllerObject = GameObject.FindWithTag("MapController"); 44 | if(mapControllerObject != null) 45 | mapController = mapControllerObject.GetComponent(); 46 | if(mapController == null) 47 | Debug.Log("Cannot find 'MapController' script"); 48 | thisStage = mapController.getCurrentStage(); 49 | waveMark = 0; 50 | timeOffset = distance / 10.0f; 51 | barExecutedTime = 0; 52 | barTime = (60.0f / mapController.getCurrentBPM(barExecutedTime)) * 4.0f; 53 | 54 | score = 0; 55 | hitted = 0; 56 | combo = new int[2] {0, 0}; 57 | noteCnt = 0; 58 | updateScoreAndCombo(); 59 | isInit = false; 60 | isBarEnd = true; 61 | StartCoroutine(gameStart()); 62 | } 63 | 64 | void Update() { 65 | if (isInit && (waveMark < thisStage.bars.Count)) { 66 | songTimer = mapController.getSongTimer(); 67 | 68 | if ((songTimer + timeOffset) >= (barExecutedTime - barTime) && isBarEnd) { 69 | Debug.Log("songTime: " + songTimer + ", barExecutedTime: " + barExecutedTime); 70 | StartCoroutine(spawnBar ()); 71 | barExecutedTime += barTime; 72 | } 73 | } 74 | if((waveMark >= thisStage.bars.Count) && !mapController._nowPlaying.isPlaying) 75 | StartCoroutine(gameEnd ()); 76 | } 77 | 78 | IEnumerator spawnBar () { 79 | isBarEnd = false; 80 | List thisWave = thisStage.bars[waveMark++]; 81 | barTime = (60.0f / mapController.getCurrentBPM(barExecutedTime)) * 4.0f; 82 | for(int i = 0; i < thisWave.Count; i++) { 83 | yield return spawnNote(thisWave[i], thisWave.Count); 84 | } 85 | isBarEnd = true; 86 | } 87 | 88 | IEnumerator spawnNote (Notes currentBar, int count) { 89 | Vector3 notePos = new Vector3 (0, transform.position.y, transform.position.z - 1); 90 | if(currentBar.left) { 91 | notePos.x = xPosList[0]; 92 | Instantiate (notes.leftNote, notePos, notes.leftNote.transform.rotation); 93 | noteCnt++; 94 | } 95 | if(currentBar.down) { 96 | notePos.x = xPosList[1]; 97 | Instantiate (notes.downNote, notePos, notes.downNote.transform.rotation); 98 | noteCnt++; 99 | } 100 | if(currentBar.up) { 101 | notePos.x = xPosList[2]; 102 | Instantiate (notes.upNote, notePos, notes.upNote.transform.rotation); 103 | noteCnt++; 104 | } 105 | if(currentBar.right) { 106 | notePos.x = xPosList[3]; 107 | Instantiate (notes.rightNote, notePos, notes.rightNote.transform.rotation); 108 | noteCnt++; 109 | } 110 | yield return new WaitForSeconds((barTime / count) - Time.deltaTime); 111 | } 112 | 113 | public float getSongTime() { 114 | return songTimer; 115 | } 116 | 117 | public void comboSuccess() { 118 | hitted += 1; 119 | combo[0] += 1; 120 | if(combo[0] > combo[1]) combo[1] = combo[0]; 121 | score += 10 * combo[0]; 122 | updateScoreAndCombo(); 123 | } 124 | 125 | public void comboFail(int name) { 126 | combo[0] = 0; 127 | // Debug.Log(name + "'s end time: " + songTimer); 128 | updateScoreAndCombo(); 129 | } 130 | 131 | void updateScoreAndCombo() { 132 | string scoreStr = score.ToString(); 133 | scoreText.text = "Score: \n" + scoreStr.PadLeft(8, '0'); 134 | if(combo[0] > 1) 135 | comboText.text = "x" + combo[0]; 136 | else 137 | comboText.text = ""; 138 | } 139 | 140 | IEnumerator gameStart(){ 141 | yield return new WaitForSeconds (offset); 142 | Debug.Log("Game Start"); 143 | isInit = true; 144 | yield return mapController.playAudio (timeOffset); 145 | } 146 | 147 | IEnumerator gameEnd(){ 148 | yield return new WaitForSeconds (offset); 149 | PlayerPrefs.SetInt("score", score); 150 | PlayerPrefs.SetInt("maxCombo", combo[1]); 151 | PlayerPrefs.SetInt("playerHitted", hitted); 152 | PlayerPrefs.SetInt("totalBeats", noteCnt); 153 | anim.SetBool("Fade", true); 154 | yield return new WaitUntil(() => black.color.a == 1); 155 | SceneManager.LoadScene("ScoreBoard", LoadSceneMode.Single); 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /Assets/Scripts/MetaData.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | public struct Notes{ 7 | public bool left; 8 | public bool right; 9 | public bool up; 10 | public bool down; 11 | } 12 | 13 | public struct NoteData{ 14 | public List> bars; 15 | } 16 | 17 | public struct startBPM{ 18 | public float mapPos; 19 | public float mapBPM; 20 | } 21 | 22 | public class MetaData{ 23 | public bool valid; 24 | public DirectoryInfo dir; 25 | 26 | public string title; 27 | public string subtitle; 28 | public string artist; 29 | 30 | public string bannerPath; 31 | public string backgroundPath; 32 | public string musicPath; 33 | 34 | public float offset; 35 | public List bpms; 36 | 37 | public float sampleStart; 38 | public float sampleLength; 39 | 40 | public NoteData beginner; 41 | public bool beginnerExists; 42 | public NoteData easy; 43 | public bool easyExists; 44 | public NoteData medium; 45 | public bool mediumExists; 46 | public NoteData hard; 47 | public bool hardExists; 48 | public NoteData challenge; 49 | public bool challengeExists; 50 | 51 | public MetaData(DirectoryInfo dir, string smFilePath){ 52 | this.dir = dir; 53 | this.valid = true; 54 | this.beginnerExists = false; 55 | this.easyExists = false; 56 | this.mediumExists = false; 57 | this.hardExists = false; 58 | this.challengeExists = false; 59 | using (StreamReader sr = new StreamReader(smFilePath)){ 60 | string[] lines = sr.ReadToEnd().Split("\n"[0]); 61 | this.iterateDetails(lines); 62 | } 63 | } 64 | 65 | private void iterateDetails(string[] lines){ 66 | bool inNotes = false; 67 | for(int i = 0; i < lines.Length; i += 1){ 68 | string line = lines[i].Trim(); 69 | if(line.StartsWith("//")) continue; 70 | else if(line.StartsWith("#")){ 71 | string key = line.Substring(0, line.IndexOf(':')).Trim('#').Trim(':'); 72 | 73 | switch(key.ToUpper()){ 74 | case "TITLE": 75 | this.title = line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 76 | break; 77 | case "SUBTITLE": 78 | this.subtitle = line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 79 | break; 80 | case "ARTIST": 81 | this.artist = line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 82 | break; 83 | case "BANNER": 84 | this.bannerPath = this.dir.FullName + "\\" + line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 85 | break; 86 | case "BACKGROUND": 87 | this.backgroundPath = this.dir.FullName + "\\" + line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 88 | break; 89 | case "MUSIC": 90 | this.musicPath = this.dir.FullName + "\\" + line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 91 | if (!File.Exists(this.musicPath)){ 92 | //No music file found! 93 | this.musicPath = null; 94 | this.valid = false; 95 | } 96 | break; 97 | case "OFFSET": 98 | if (!float.TryParse(line.Substring(line.IndexOf(':')).Trim(':').Trim(';'), out this.offset)){ 99 | //Error Parsing 100 | this.offset = 0.0f; 101 | } 102 | break; 103 | case "SAMPLESTART": 104 | if (!float.TryParse(line.Substring(line.IndexOf(':')).Trim(':').Trim(';'), out this.sampleStart)){ 105 | //Error Parsing 106 | this.sampleStart = 0.0f; 107 | } 108 | break; 109 | case "SAMPLELENGTH": 110 | if (!float.TryParse(line.Substring(line.IndexOf(':')).Trim(':').Trim(';'), out this.sampleLength)){ 111 | //Error Parsing 112 | this.sampleLength = 10.0f; 113 | } 114 | break; 115 | case "BPMS": 116 | string bpmStr = line.Substring(line.IndexOf(':')).Trim(':').Trim(';'); 117 | bpms = new List(); 118 | if(bpmStr.Length == 0){ 119 | this.musicPath = null; 120 | this.valid = false; 121 | break; 122 | } 123 | string[] bpmStrA = bpmStr.Split(','); 124 | foreach(string bpm in bpmStrA){ 125 | int eqPos = bpm.IndexOf('='); 126 | startBPM newBPM; 127 | if(float.TryParse(bpm.Substring(0, eqPos-1), out newBPM.mapPos) && float.TryParse(bpm.Substring(eqPos+1), out newBPM.mapBPM)){ 128 | bpms.Add(newBPM); 129 | } 130 | } 131 | break; 132 | case "NOTES": 133 | inNotes = true; 134 | break; 135 | default: 136 | break; 137 | } 138 | } 139 | 140 | if(inNotes){ 141 | if (line.ToLower().Contains("dance-double")){ 142 | for(int j = i; j < lines.Length; j++){ 143 | if (lines[j].Contains(";")){ 144 | i = j - 1; 145 | break; 146 | } 147 | } 148 | } 149 | 150 | if (line.ToLower().Contains("beginner") || 151 | line.ToLower().Contains("easy") || 152 | line.ToLower().Contains("medium") || 153 | line.ToLower().Contains("hard") || 154 | line.ToLower().Contains("challenge")){ 155 | string difficulty = line.Trim().Trim(':'); 156 | 157 | List noteChart = new List(); 158 | for (int j = i; j < lines.Length; j++){ 159 | string noteLine = lines[j].Trim(); 160 | if (noteLine.EndsWith(";")){ 161 | i = j - 1; 162 | break; 163 | }else{ 164 | noteChart.Add(noteLine); 165 | } 166 | } 167 | 168 | switch (difficulty.ToLower().Trim()){ 169 | case "beginner": 170 | this.beginnerExists = true; 171 | this.beginner = ParseNotes(noteChart); 172 | break; 173 | case "easy": 174 | this.easyExists = true; 175 | this.easy = ParseNotes(noteChart); 176 | break; 177 | case "medium": 178 | this.mediumExists = true; 179 | this.medium = ParseNotes(noteChart); 180 | break; 181 | case "hard": 182 | this.hardExists = true; 183 | this.hard = ParseNotes(noteChart); 184 | break; 185 | case "challenge": 186 | this.challengeExists = true; 187 | this.challenge = ParseNotes(noteChart); 188 | break; 189 | } 190 | } 191 | 192 | if (line.EndsWith(";")) inNotes = false; 193 | } 194 | } 195 | } 196 | private NoteData ParseNotes(List notes){ 197 | NoteData noteData = new NoteData(); 198 | noteData.bars = new List>(); 199 | 200 | List bar = new List(); 201 | for(int i = 0; i < notes.Count; i++){ 202 | string line = notes[i].Trim(); 203 | 204 | if (line.Contains(";")) break; 205 | 206 | if (line.Contains(",")){ 207 | noteData.bars.Add(bar); 208 | bar = new List(); 209 | } else if(line.Contains(":")){ 210 | continue; 211 | } else if (line.Length <= 4) { 212 | // Debug.Log("Line: " + line); 213 | Notes note = new Notes(); 214 | note.left = (line[0] != '0'); 215 | note.down = (line[1] != '0'); 216 | note.up = (line[2] != '0'); 217 | note.right = (line[3] != '0'); 218 | 219 | //We then add this information to our current bar and continue until end 220 | bar.Add(note); 221 | } 222 | } 223 | 224 | return noteData; 225 | } 226 | } -------------------------------------------------------------------------------- /Music Rhythm Game.sublime-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "auto_complete": 3 | { 4 | "selected_items": 5 | [ 6 | [ 7 | "is", 8 | "isBarEnd\tbool" 9 | ], 10 | [ 11 | "Wa", 12 | "WaitForSeconds\tWaitForSeconds" 13 | ], 14 | [ 15 | "Get", 16 | "GetInstanceID()\tint" 17 | ], 18 | [ 19 | "Wait", 20 | "WaitForSeconds\tWaitForSeconds" 21 | ], 22 | [ 23 | "bpms", 24 | "bpms\tList" 25 | ], 26 | [ 27 | "this", 28 | "thisWave\tint" 29 | ], 30 | [ 31 | "game", 32 | "gamePos\tfloat" 33 | ], 34 | [ 35 | "ma", 36 | "mapPos\tfloat" 37 | ], 38 | [ 39 | "f", 40 | "ForEach(Action action)\tvoid" 41 | ], 42 | [ 43 | "start", 44 | "startBPMs\tList" 45 | ], 46 | [ 47 | "or", 48 | "originalArrowSpeed\tfloat" 49 | ], 50 | [ 51 | "Note", 52 | "NoteData\tNoteData" 53 | ], 54 | [ 55 | "get", 56 | "getCurrentDifficulty()\tint" 57 | ], 58 | [ 59 | "diff", 60 | "difficultyIndex\tint" 61 | ], 62 | [ 63 | "Game", 64 | "GameObject\tGameObject" 65 | ], 66 | [ 67 | "so", 68 | "songPanel\tImage" 69 | ], 70 | [ 71 | "day", 72 | "dayOfYear" 73 | ], 74 | [ 75 | "da", 76 | "daysPerMonth" 77 | ], 78 | [ 79 | "ret", 80 | "return" 81 | ], 82 | [ 83 | "for", 84 | "for\tFor Loop" 85 | ], 86 | [ 87 | "arra", 88 | "arrayTypeName" 89 | ], 90 | [ 91 | "arr", 92 | "arrayTypeName" 93 | ], 94 | [ 95 | "mul", 96 | "multiply" 97 | ], 98 | [ 99 | "h", 100 | "HugeInt" 101 | ], 102 | [ 103 | "H", 104 | "HugeInt" 105 | ], 106 | [ 107 | "int", 108 | "integer" 109 | ], 110 | [ 111 | "do", 112 | "down" 113 | ], 114 | [ 115 | "def", 116 | "default" 117 | ], 118 | [ 119 | "S", 120 | "SCREEN_HEIGHT" 121 | ], 122 | [ 123 | "SCR", 124 | "SCREEN_WIDTH" 125 | ], 126 | [ 127 | "Puzz", 128 | "Puzzle_array" 129 | ], 130 | [ 131 | "P", 132 | "Puzzle_array" 133 | ], 134 | [ 135 | "Puzzle_", 136 | "Puzzle_array" 137 | ], 138 | [ 139 | "Puzzle", 140 | "Puzzle_array" 141 | ], 142 | [ 143 | "SDL_", 144 | "SDL_Rect" 145 | ], 146 | [ 147 | "bool", 148 | "BitArray(bool[] values)\tBitArray(bool[] values)" 149 | ], 150 | [ 151 | "ball", 152 | "ballCount\tint" 153 | ], 154 | [ 155 | "pla", 156 | "playerInHole\tint" 157 | ], 158 | [ 159 | "play", 160 | "playerInHoleText\tText" 161 | ], 162 | [ 163 | "ba", 164 | "ballCount\tint" 165 | ], 166 | [ 167 | "dice", 168 | "diceNum" 169 | ], 170 | [ 171 | "men", 172 | "menuH" 173 | ], 174 | [ 175 | "menu", 176 | "menuClip" 177 | ], 178 | [ 179 | "dic", 180 | "diceH" 181 | ], 182 | [ 183 | "di", 184 | "dicePos" 185 | ], 186 | [ 187 | "sta", 188 | "startPos" 189 | ], 190 | [ 191 | "push", 192 | "pushStr〔variable〕" 193 | ], 194 | [ 195 | "show", 196 | "showNoLCard" 197 | ], 198 | [ 199 | "se", 200 | "senzai" 201 | ], 202 | [ 203 | "parse", 204 | "parseInt〔function〕" 205 | ], 206 | [ 207 | "data", 208 | "datalist〔variable〕" 209 | ], 210 | [ 211 | "time", 212 | "timestamp" 213 | ], 214 | [ 215 | "list", 216 | "list2" 217 | ], 218 | [ 219 | "c", 220 | "createlist" 221 | ], 222 | [ 223 | "in", 224 | "insertlist" 225 | ], 226 | [ 227 | "In", 228 | "Input\tInput" 229 | ], 230 | [ 231 | "p", 232 | "position\tVector3 { get; set; }" 233 | ], 234 | [ 235 | "shot", 236 | "shotSpawn\tTransform" 237 | ], 238 | [ 239 | "Inst", 240 | "Instantiate(Object original, Vector3 position, Quaternion rotation)\tObject" 241 | ], 242 | [ 243 | "Ins", 244 | "Instantiate(Object original)\tObject" 245 | ], 246 | [ 247 | "Insta", 248 | "Instantiate(T original)\tT" 249 | ], 250 | [ 251 | "pr", 252 | "private\tprivate" 253 | ], 254 | [ 255 | "Euler", 256 | "Euler(float x, float y, float z)\tQuaternion" 257 | ], 258 | [ 259 | "bo", 260 | "Boundary\tBoundary" 261 | ], 262 | [ 263 | "Cl", 264 | "Clamp(float value, float min, float max)\tfloat" 265 | ], 266 | [ 267 | "cl", 268 | "Clamp(int value, int min, int max)\tint" 269 | ], 270 | [ 271 | "Ve", 272 | "Vector3\tVector3" 273 | ], 274 | [ 275 | "rig", 276 | "rigidbody\tComponent { get; }" 277 | ], 278 | [ 279 | "mov", 280 | "moveVertical\tfloat" 281 | ], 282 | [ 283 | "count", 284 | "countText\tText" 285 | ], 286 | [ 287 | "an", 288 | "answer" 289 | ], 290 | [ 291 | "iM", 292 | "imulTest" 293 | ], 294 | [ 295 | "Write", 296 | "WriteInt" 297 | ], 298 | [ 299 | "val", 300 | "val2" 301 | ], 302 | [ 303 | "msg", 304 | "msgiMulTest" 305 | ], 306 | [ 307 | "msgM", 308 | "msgMulTest" 309 | ], 310 | [ 311 | "Sh", 312 | "ShiftL1" 313 | ], 314 | [ 315 | "print", 316 | "printDemo" 317 | ], 318 | [ 319 | "Eva", 320 | "Evaluate_id\tint { get; set; }" 321 | ], 322 | [ 323 | "eva", 324 | "Evaluate_id\tint { get; set; }" 325 | ], 326 | [ 327 | "e", 328 | "Evaluate_id\tint { get; set; }" 329 | ], 330 | [ 331 | "edit", 332 | "editEvaluateList\tEvaluate_Data" 333 | ], 334 | [ 335 | "dele", 336 | "deleteEvaluateList\tEvaluate_Data" 337 | ], 338 | [ 339 | "delegate", 340 | "delegate(Evaluate_Data obj)\tdelegate(Evaluate_Data obj)" 341 | ], 342 | [ 343 | "ToInt32", 344 | "ToInt32(string value)\tint" 345 | ], 346 | [ 347 | "ToIn", 348 | "ToInt32(string value)\tint" 349 | ], 350 | [ 351 | "User", 352 | "User_i\tint { get; }" 353 | ], 354 | [ 355 | "Res", 356 | "Restaurant_address" 357 | ], 358 | [ 359 | "re", 360 | "restaurantQuery\tRestaurants_Model" 361 | ], 362 | [ 363 | "Re", 364 | "Restaurant_Data\tRestaurant_Data" 365 | ], 366 | [ 367 | "View", 368 | "ViewType\tint" 369 | ], 370 | [ 371 | "R", 372 | "Restaurant_name\tstring { get; set; }" 373 | ], 374 | [ 375 | "Sql", 376 | "SqlQuery_Restaurant_Details(string Restaurant_id)\tList" 377 | ], 378 | [ 379 | "by", 380 | "by_user_id\tint" 381 | ], 382 | [ 383 | "asp", 384 | "asp:Label" 385 | ], 386 | [ 387 | "append", 388 | "appendStr〔variable〕" 389 | ], 390 | [ 391 | "ch", 392 | "children〔function〕" 393 | ], 394 | [ 395 | "dr", 396 | "drink_id_list\tDropDownList" 397 | ], 398 | [ 399 | "Select", 400 | "SelectedValue" 401 | ], 402 | [ 403 | "VI", 404 | "ViewType\tint" 405 | ], 406 | [ 407 | "V", 408 | "ValueType\tValueType" 409 | ], 410 | [ 411 | "User_s", 412 | "User_signup_time\tDateTime" 413 | ], 414 | [ 415 | "User_last", 416 | "User_last_signin_time\tDateTime" 417 | ], 418 | [ 419 | "E", 420 | "Equals(string value)\tbool" 421 | ], 422 | [ 423 | "div", 424 | "divided" 425 | ], 426 | [ 427 | "to", 428 | "toUpperCase" 429 | ], 430 | [ 431 | "my", 432 | "myTable" 433 | ], 434 | [ 435 | "ke", 436 | "keyup〔function〕" 437 | ], 438 | [ 439 | "bac", 440 | "background-image" 441 | ], 442 | [ 443 | "s", 444 | "server" 445 | ], 446 | [ 447 | "Con", 448 | "ContentPlaceHolderID" 449 | ], 450 | [ 451 | "Dr", 452 | "DrinkName_Dropdown\tDropDownList" 453 | ], 454 | [ 455 | "Drink", 456 | "DrinkQty\tList>" 457 | ], 458 | [ 459 | "Order", 460 | "OrderDrinks_Item_Dataset()\tvoid" 461 | ], 462 | [ 463 | "Se", 464 | "Session\tHttpSessionState { get; }" 465 | ], 466 | [ 467 | "Wr", 468 | "WriteChar" 469 | ], 470 | [ 471 | "sz", 472 | "szHanniFmt_3" 473 | ], 474 | [ 475 | "HAN", 476 | "HANOI_N" 477 | ], 478 | [ 479 | "str", 480 | "str2_1" 481 | ], 482 | [ 483 | "add", 484 | "addClass〔function〕" 485 | ], 486 | [ 487 | "remv", 488 | "removeClass〔function〕" 489 | ], 490 | [ 491 | "bt-", 492 | "bt-menu" 493 | ], 494 | [ 495 | "no", 496 | "nowrap" 497 | ], 498 | [ 499 | "sys", 500 | "susy-breakpoint" 501 | ], 502 | [ 503 | "gutter", 504 | "gutter-position" 505 | ], 506 | [ 507 | "o", 508 | "order_session" 509 | ], 510 | [ 511 | "padding", 512 | "padding-top" 513 | ], 514 | [ 515 | "fi", 516 | "field" 517 | ] 518 | ] 519 | }, 520 | "buffers": 521 | [ 522 | { 523 | "contents": "#TITLE:Little Busters! ~TV animation ver.~;\n#SUBTITLE:リトルバスターズ! OP;\n#ARTIST:Rita;\n#TITLETRANSLIT:;\n#SUBTITLETRANSLIT:;\n#ARTISTTRANSLIT:;\n#CREDIT:;\n#BANNER:banner.jpg;\n#BACKGROUND:bg.jpg;\n#LYRICSPATH:;\n#CDTITLE:cdtitle.png;\n#MUSIC:op.mp3;\n#OFFSET:0.133;\n#SAMPLESTART:51.460;\n#SAMPLELENGTH:24.000;\n#SELECTABLE:YES;\n#BPMS:0.000=151.000;\n#STOPS:219.500=0.099\n,220.250=0.099\n;\n#BGCHANGES:0.250=op.avi=1.000=0=0=1,\n99999=-nosongbg-=1.000=0=0=0 // don't automatically add -songbackground-\n;\n\n//---------------dance-single - ----------------\n#NOTES:\n dance-single:\n :\n Hard:\n 11:\n 1.000,1.000,1.000,1.000,0.359: // measure 1\n0000\n0000\n0000\n0000\n0001\n1000\n0100\n0000\n, // measure 2\n0000\n0000\n1000\n0001\n0010\n0100\n0000\n0010\n, // measure 3\n0000\n1000\n0000\n0001\n0010\n1000\n0100\n0001\n, // measure 4\n0000\n0000\n0001\n0100\n0010\n1000\n0100\n0010\n, // measure 5\n1000\n0000\n0001\n0000\n0000\n0000\n0100\n1000\n0011\n0000\n1000\n0000\n0110\n0000\n0001\n0000\n, // measure 6\n1010\n0000\n0100\n0000\n0101\n0000\n1000\n0000\n1001\n0000\n0010\n0000\n1010\n0000\n0100\n0010\n, // measure 7\n1001\n0100\n0010\n0000\n0101\n0010\n1100\n0000\n0011\n0000\n0100\n0000\n1010\n0000\n0001\n1000\n, // measure 8\n0110\n0000\n0000\n0000\n0000\n0000\n1000\n0000\n0000\n0000\n0000\n0000\n1010\n0000\n0000\n0000\n0000\n0000\n0001\n0000\n0000\n0000\n0000\n0000\n1100\n0000\n0010\n0000\n0001\n0000\n0010\n0000\n0000\n1000\n0000\n0000\n0101\n0000\n0000\n0000\n0000\n0000\n1010\n0000\n0000\n0000\n0000\n0000\n, // measure 9\n0001\n0010\n1100\n0000\n0000\n0000\n0010\n1000\n0200\n0000\n0010\n0000\n1001\n0000\n0001\n0000\n, // measure 10\n0010\n1000\n0011\n0010\n1000\n0001\n1010\n1000\n, // measure 11\n0302\n0003\n0020\n0000\n0101\n0030\n2000\n0100\n0010\n0000\n0001\n0000\n0110\n0000\n0100\n0000\n, // measure 12\n0001\n3000\n0020\n0000\n1001\n0030\n0200\n0000\n1000\n0300\n0002\n0000\n0110\n0003\n2000\n0000\n, // measure 13\n0100\n3010\n0002\n0003\n1020\n0000\n0130\n1000\n0002\n0000\n0010\n0000\n1100\n0000\n0100\n0000\n, // measure 14\n0010\n0000\n1000\n0000\n0110\n0000\n0010\n0000\n1000\n0000\n0100\n0000\n1010\n0000\n1000\n0003\n, // measure 15\n0020\n0000\n0100\n0000\n1001\n0000\n0100\n0031\n0200\n0000\n0000\n0000\n0011\n0300\n2000\n0000\n, // measure 16\n0010\n0001\n0011\n0000\n0001\n0010\n0011\n0100\n, // measure 17\n0010\n0100\n0001\n0010\n0101\n3000\n0000\n0000\n0101\n0000\n2000\n3000\n0021\n0030\n0200\n0000\n, // measure 18\n1010\n0000\n0001\n0300\n1002\n0003\n0020\n0030\n2001\n3000\n0200\n0000\n1010\n0300\n0002\n0003\n, // measure 19\n2100\n3000\n0020\n0000\n1001\n0030\n0200\n0300\n0012\n0000\n0100\n0003\n2001\n3000\n0020\n0030\n, // measure 20\n1200\n0300\n0002\n0000\n0110\n0003\n2000\n0000\n0101\n3000\n0020\n0000\n1001\n0000\n0100\n0030\n, // measure 21\n0101\n0000\n0010\n0000\n0110\n0000\n1001\n0000\n0210\n0300\n2000\n3000\n0102\n0003\n2000\n0000\n, // measure 22\n0011\n0000\n0100\n3000\n1020\n0030\n0002\n0003\n1200\n0300\n0020\n0000\n0101\n0030\n0200\n0300\n, // measure 23\n0012\n0003\n2000\n0000\n0101\n3000\n0020\n0030\n1002\n0000\n0010\n0003\n2010\n3000\n0200\n0300\n, // measure 24\n0021\n0030\n2000\n0000\n0011\n3000\n0200\n0000\n1001\n0300\n0020\n0000\n1100\n0000\n0001\n0030\n, // measure 25\n0101\n0000\n0010\n0000\n0102\n0000\n0010\n0003\n2100\n0000\n0000\n0000\n0011\n0000\n0000\n0000\n, // measure 26\n0110\n0000\n0000\n0000\n0011\n0000\n0000\n0000\n0001\n0000\n0000\n0000\n0200\n0000\n0300\n0000\n0002\n0000\n3003\n0000\n0020\n0000\n0030\n0000\n0200\n0000\n0300\n0000\n0002\n0003\n0000\n0000\n, // measure 27\n2000\n3000\n0020\n0000\n1100\n0030\n0002\n1000\n0110\n0000\n0000\n0000\n1100\n0000\n0000\n0000\n, // measure 28\n1010\n0000\n0110\n0000\n1000\n0000\n1100\n0003\n0020\n0030\n2000\n3000\n0012\n0003\n0200\n0300\n, // measure 29\n0002\n0103\n0020\n1000\n0100\n0001\n1000\n0030\n0102\n0000\n0010\n0000\n1000\n0000\n0100\n0000\n, // measure 30\n0010\n0000\n0100\n0003\n1000\n0000\n0002\n0000\n0010\n0000\n0100\n0003\n2000\n0000\n0010\n0000\n, // measure 31\n0100\n0000\n0001\n0000\n0010\n3000\n0200\n0310\n0002\n0000\n0013\n0200\n1000\n0300\n0020\n0030\n, // measure 32\n2000\n0000\n0000\n0000\n3100\n0000\n0002\n0000\n0013\n0000\n0000\n0000\n0200\n0300\n0020\n0030\n0002\n0000\n0003\n0000\n0200\n0000\n0000\n0000\n0001\n0000\n0300\n0000\n2000\n0100\n0010\n0001\n, // measure 33\n0100\n0010\n0001\n0100\n0010\n0001\n0100\n0010\n0101\n0000\n3000\n0000\n0001\n0000\n0000\n0000\n0020\n0000\n0030\n0000\n0002\n0000\n0000\n0000\n1100\n0000\n0003\n0000\n0020\n0000\n0030\n0000\n, // measure 34\n2000\n0000\n0001\n3000\n0210\n0300\n0002\n0100\n1000\n0003\n0020\n0030\n0201\n0000\n0010\n0300\n, // measure 35\n2000\n3000\n0002\n0000\n1010\n0003\n0200\n0300\n0020\n0000\n1000\n0030\n0102\n0003\n2000\n0000\n, // measure 36\n0010\n3000\n0200\n0300\n1002\n0003\n0020\n0030\n2000\n0000\n0001\n3000\n0120\n0001\n1000\n0100\n, // measure 37\n0001\n0000\n0100\n0000\n1001\n0000\n0100\n0000\n0031\n0000\n0200\n0300\n0012\n0003\n2000\n3000\n, // measure 38\n0020\n0030\n0200\n0000\n1001\n0000\n0010\n1300\n0002\n0000\n0100\n0000\n1010\n0003\n0200\n0300\n, // measure 39\n2000\n0000\n0010\n0000\n0101\n3000\n1000\n0000\n0200\n0300\n0002\n0103\n1020\n0030\n0200\n0300\n, // measure 40\n2000\n0000\n0001\n3000\n0210\n0300\n0002\n0000\n0100\n0010\n1000\n0003\n0110\n0000\n0002\n0013\n, // measure 41\n0200\n0000\n1300\n0002\n0110\n0003\n2000\n3000\n0200\n0000\n0001\n0300\n1020\n0030\n0002\n0000\n, // measure 42\n0010\n0003\n2000\n3000\n0120\n0000\n1000\n0130\n0002\n0003\n0200\n0000\n1001\n0300\n0020\n0030\n, // measure 43\n2000\n0000\n0010\n3000\n0102\n0003\n0200\n0000\n0010\n0300\n2000\n3000\n0120\n0000\n0001\n0030\n, // measure 44\n0200\n0000\n0010\n0300\n1002\n0010\n0100\n1000\n0010\n0000\n1000\n0000\n1010\n0000\n0100\n0000\n, // measure 45\n1000\n0003\n0020\n0030\n2001\n3000\n0200\n0300\n0002\n0003\n0020\n0000\n0100\n0000\n1000\n0031\n, // measure 46\n0200\n0000\n0001\n0000\n1010\n0300\n0002\n0003\n2000\n0000\n0100\n3000\n0021\n0030\n0200\n0000\n, // measure 47\n0010\n0300\n0002\n1003\n0120\n0030\n2000\n3000\n0200\n0000\n0010\n0300\n1002\n0003\n0020\n0000\n, // measure 48\n1000\n0100\n0001\n0100\n0001\n1130\n0011\n0000\n0200\n0000\n0310\n0002\n1100\n0003\n0020\n0030\n, // measure 49\n2001\n0000\n0000\n0000\n3010\n0000\n0200\n0000\n1001\n0000\n0300\n0000\n0020\n0030\n0002\n0003\n2100\n0000\n0000\n0000\n3001\n0000\n0200\n0000\n1010\n0000\n0300\n0000\n0002\n0000\n0000\n0000\n, // measure 50\n0110\n0000\n1000\n0100\n1013\n0000\n0001\n0100\n2010\n0000\n3100\n0020\n1001\n0030\n0200\n0300\n, // measure 51\n0012\n0000\n1003\n0020\n0101\n0030\n2000\n3000\n0200\n0000\n1000\n0000\n0001\n1000\n0310\n0000\n, // measure 52\n0020\n0000\n0100\n0000\n1000\n0100\n0031\n0000\n0002\n0000\n1000\n0000\n1100\n0000\n0010\n0000\n, // measure 53\n1000\n0100\n0110\n1000\n0100\n0010\n1010\n0100\n, // measure 54\n0010\n0000\n1000\n0000\n1100\n0000\n0010\n0100\n1000\n0000\n0100\n0000\n0110\n0000\n1000\n0000\n, // measure 55\n0100\n0000\n0003\n0000\n0010\n0000\n0000\n0000\n1001\n0000\n0000\n0000\n0100\n0000\n0000\n0000\n1000\n0100\n0010\n0001\n0100\n0000\n1000\n0000\n0100\n0000\n0000\n0000\n01M1\n0000\n0000\n0000\n, // measure 56\n0000\n1M10\n0000\n0000\n2MM2\n0000\n0000\n0000\n0000\n0000\n0000\n0000\n0000\n0000\n0000\n0000\n, // measure 57\n0000\n3003\n0000\n0000\n0000\n0000\n0000\n0000\n;\n", 524 | "file": "Songs/[CMC-008]Little Busters! ~TV animation ver.~/Little Busters! ~TV animation ver.~.sm", 525 | "file_size": 7451, 526 | "file_write_time": 129946107960000000, 527 | "settings": 528 | { 529 | "buffer_size": 6384, 530 | "line_ending": "Windows", 531 | "scratch": true 532 | } 533 | }, 534 | { 535 | "contents": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class NoteController : MonoBehaviour {\n\tpublic float speed;\n\tpublic AudioClip impact;\n\n\tpublic GameObject successBurst;\n\n\tprivate Rigidbody rb;\n\tprivate AudioSource audioS;\n\tprivate GameController gameController;\n\n\tvoid Start ()\n\t{\n\t\trb = GetComponent();\n\t\trb.velocity = new Vector3(0, 0, speed);\n\t\taudioS = GetComponent();\n GameObject gameControllerObject = GameObject.FindWithTag(\"GameController\");\n if(gameControllerObject != null)\n gameController = gameControllerObject.GetComponent();\n if(gameController == null)\n Debug.Log(\"Cannot find 'GameController' script\");\n Debug.Log(GetInstanceID() + \"'s start time: \" + gameController.getSongTime());\n\t}\n\n\tvoid OnTriggerEnter (Collider other) {\n\t\tswitch(other.gameObject.tag){\n\t\t\tcase \"FailCollector\":\n\t\t\t\taudioS.PlayOneShot(impact, 0.7F);\n\t\t\t\tDebug.Log(\"Failed!\");\n\t\t\t\tgameController.comboFail(GetInstanceID());\n\t\t\t\tDestroy(rb.gameObject);\n\t\t\t\tbreak;\n\t\t\tcase \"SuccessTrigger\":\n\t\t\t\taudioS.PlayOneShot(impact, 0.7F);\n\t\t\t\tDebug.Log(\"Success!\");\n\t\t\t\tGameObject burst = Instantiate(successBurst, transform.position, successBurst.transform.rotation);\n\t\t\t\tgameController.comboSuccess();\n\t\t\t\tDestroy(rb.gameObject);\n\t\t\t\tDestroy (burst, 1);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t break;\n\t\t}\n\t}\n}\n", 536 | "file": "Assets/Scripts/NoteController.cs", 537 | "file_size": 1405, 538 | "file_write_time": 131404446951263522, 539 | "settings": 540 | { 541 | "buffer_size": 1402, 542 | "line_ending": "Unix", 543 | "scratch": true 544 | } 545 | }, 546 | { 547 | "file": "README.md", 548 | "settings": 549 | { 550 | "buffer_size": 3415, 551 | "encoding": "UTF-8", 552 | "line_ending": "Windows" 553 | } 554 | }, 555 | { 556 | "file": "Assets/Shader/SpriteGradient.shader", 557 | "settings": 558 | { 559 | "buffer_size": 1696, 560 | "encoding": "UTF-8 with BOM", 561 | "line_ending": "Windows" 562 | } 563 | }, 564 | { 565 | "file": "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/GlobalBallEffects.cs", 566 | "settings": 567 | { 568 | "buffer_size": 267, 569 | "encoding": "UTF-8 with BOM", 570 | "line_ending": "Unix" 571 | } 572 | }, 573 | { 574 | "contents": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.UI;\nusing UnityEngine.SceneManagement;\n\n[System.Serializable]\npublic class NoteObj{\n\tpublic GameObject leftNote, downNote, upNote, rightNote;\n}\n\npublic class GameController : MonoBehaviour {\n\n\t// List whichNote = new List() {1, 2, 2, 8, 2, 4, 4, 1, 2, 1, 4, 2, 4, 4, 8, 4, 2, 4, 8, 8, 4, 2, 4, 4};\n\tList xPosList = new List() {-3, -1, 1, 3};\n\n\tpublic float offset;\n\tpublic float distance;\n\tpublic NoteObj notes;\n\tpublic Text scoreText;\n\tpublic Text comboText;\n\tpublic Image black;\n\tpublic Animator anim;\n\n\tprivate MapController mapController;\n\tprivate NoteData thisStage;\n\tprivate int waveMark;\n\tprivate int noteCnt;\n\tprivate int score;\n\tprivate int hitted;\n\tprivate int[] combo;\n\n\tprivate bool isInit;\n\tprivate bool isBarEnd;\n\tprivate int barCount;\n\tprivate float arrowSpeed;\n\tprivate float barExecutedTime;\n\tprivate float barTime;\n\tprivate float songTimer;\n\tprivate float timeOffset;\n\n\tvoid Start () {\n\t\tGameObject mapControllerObject = GameObject.FindWithTag(\"MapController\");\n\t\tif(mapControllerObject != null)\n\t\t\tmapController = mapControllerObject.GetComponent();\n\t\tif(mapController == null)\n\t\t\tDebug.Log(\"Cannot find 'MapController' script\");\n\t\tthisStage = mapController.getCurrentStage();\n\t\twaveMark = 0;\n\t\ttimeOffset = distance / 10.0f;\n\t\tbarExecutedTime = 0;\n\t\tbarTime = (60.0f / mapController.getCurrentBPM(barExecutedTime)) * 4.0f;\n\n\t\tscore = 0;\n\t\thitted = 0;\n\t\tcombo = new int[2] {0, 0};\n\t\tnoteCnt = 0;\n\t\tupdateScoreAndCombo();\n\t\tisInit = false;\n\t\tisBarEnd = true;\n\t\tStartCoroutine(gameStart());\n\t}\n\n\tvoid Update() {\n\t\tif (isInit && (waveMark < thisStage.bars.Count)) {\n songTimer = mapController.getSongTimer();\n\n if ((songTimer + timeOffset) >= (barExecutedTime - barTime) && isBarEnd) {\n \tDebug.Log(\"songTime: \" + songTimer + \", barExecutedTime: \" + barExecutedTime);\n \tStartCoroutine(spawnBar ());\n \tbarExecutedTime += barTime;\n }\n }\n\t}\n\n\tIEnumerator spawnBar () {\n\t\tisBarEnd = false;\n\t\tList thisWave = thisStage.bars[waveMark++];\n\t\tbarTime = (60.0f / mapController.getCurrentBPM(barExecutedTime)) * 4.0f;\n\t\tfor(int i = 0; i < thisWave.Count; i++) {\n\t\t\tyield return spawnNote(thisWave[i], thisWave.Count);\n\t\t}\n\t\tisBarEnd = true;\n\t}\n\n\tIEnumerator spawnNote (Notes currentBar, int count) {\n\t\tVector3 notePos = new Vector3 (0, transform.position.y, transform.position.z - 1);\n\t\tif(currentBar.left) {\n\t\t\tnotePos.x = xPosList[0];\n\t\t\tInstantiate (notes.leftNote, notePos, notes.leftNote.transform.rotation);\n\t\t\tnoteCnt++;\n\t\t}\n\t\tif(currentBar.down) {\n\t\t\tnotePos.x = xPosList[1];\n\t\t\tInstantiate (notes.downNote, notePos, notes.downNote.transform.rotation);\n\t\t\tnoteCnt++;\n\t\t}\n\t\tif(currentBar.up) {\n\t\t\tnotePos.x = xPosList[2];\n\t\t\tInstantiate (notes.upNote, notePos, notes.upNote.transform.rotation);\n\t\t\tnoteCnt++;\n\t\t}\n\t\tif(currentBar.right) {\n\t\t\tnotePos.x = xPosList[3];\n\t\t\tInstantiate (notes.rightNote, notePos, notes.rightNote.transform.rotation);\n\t\t\tnoteCnt++;\n\t\t}\n\t\tyield return new WaitForSeconds((barTime / count) - Time.deltaTime);\n\t}\n\n\tpublic float getSongTime() {\n\t\treturn songTimer;\n\t}\n\n\tpublic void comboSuccess() {\n\t\thitted += 1;\n\t\tcombo[0] += 1;\n\t\tif(combo[0] > combo[1]) combo[1] = combo[0];\n\t\tscore += 10 * combo[0];\n\t\tupdateScoreAndCombo();\n\t}\n\n\tpublic void comboFail(int name) {\n\t\tcombo[0] = 0;\n\t\tDebug.Log(name + \"'s end time: \" + songTimer);\n\t\tupdateScoreAndCombo();\n\t}\n\n\tvoid updateScoreAndCombo() {\n\t\tstring scoreStr = score.ToString();\n\t\tscoreText.text = \"Score: \\n\" + scoreStr.PadLeft(8, '0');\n\t\tif(combo[0] > 1)\n\t\t\tcomboText.text = \"x\" + combo[0];\n\t\telse\n\t\t\tcomboText.text = \"\";\n\t}\n\n\tIEnumerator gameStart(){\n\t\tyield return new WaitForSeconds (offset);\n\t\tDebug.Log(\"Game Start\");\n\t\tisInit = true;\n\t\tyield return mapController.playAudio (timeOffset);\n\t}\n\n\tIEnumerator gameEnd(){\n\t\tyield return new WaitForSeconds (offset);\n\t\tPlayerPrefs.SetInt(\"score\", score);\n\t\tPlayerPrefs.SetInt(\"maxCombo\", combo[1]);\n\t\tPlayerPrefs.SetInt(\"playerHitted\", hitted);\n\t\tPlayerPrefs.SetInt(\"totalBeats\", noteCnt);\n\t\tanim.SetBool(\"Fade\", true);\n\t\tyield return new WaitUntil(() => black.color.a == 1);\n\t\tSceneManager.LoadScene(\"ScoreBoard\", LoadSceneMode.Single);\n\t}\n}\n", 575 | "file": "Assets/Scripts/GameController.cs", 576 | "file_size": 4448, 577 | "file_write_time": 131404376316560924, 578 | "settings": 579 | { 580 | "buffer_size": 4290, 581 | "line_ending": "Windows", 582 | "scratch": true 583 | } 584 | }, 585 | { 586 | "contents": "using System.IO;\nusing System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class MapController : MonoBehaviour {\n\tpublic bool _loadComplete;\n\tpublic AudioSource _nowPlaying;\n\tpublic bool _isStarted;\n\n\tprivate List metaList;\n\tprivate int songIndex;\n\tprivate List difficulties;\n\tprivate int difficultyIndex;\n\tprivate List startBPMs;\n\tprivate int nextBPMIndex;\n\n\tvoid Start () {\n\t\tDontDestroyOnLoad(this);\n\t\t_loadComplete = false;\n\t\tmetaList = new List();\n\t\tDirectoryInfo baseDir = new DirectoryInfo(\"Songs\");\n\t\tDirectoryInfo[] dirArray = baseDir.GetDirectories();\n\t\tforeach (DirectoryInfo subDir in dirArray) {\n\t\t\tFileInfo[] smFiles = subDir.GetFiles(\"*.sm\");\n\t\t\tif(smFiles.Length == 1) {\n\t\t\t\tMetaData newSong = new MetaData(subDir, smFiles[0].FullName);\n\t\t\t\tmetaList.Add(newSong);\n\t\t\t}\n\t\t}\n\t\t_loadComplete = true;\n\t\t_isStarted = false;\n\t\tsongIndex = 0;\n\t\tdifficulties = new List();\n\t\tstartBPMs = metaList[songIndex].bpms;\n\t\tnextBPMIndex = (startBPMs.Count > 1) ? 1 : 0;\n\t\tsetDifficulties(metaList[songIndex]);\n\t}\n\n\tvoid setDifficulties(MetaData map) {\n\t\tdifficulties.Clear();\n\t\tif(map.beginnerExists) difficulties.Add(0);\n\t\tif(map.easyExists) difficulties.Add(1);\n\t\tif(map.beginnerExists) difficulties.Add(2);\n\t\tif(map.hardExists) difficulties.Add(3);\n\t\tif(map.challengeExists) difficulties.Add(4);\n\t\tdifficultyIndex = 0;\n\t}\n\n\tpublic List getSongList() {\n\t\treturn metaList;\n\t}\n\n\tpublic List getDifficultyList() {\n\t\treturn difficulties;\n\t}\n\n\tpublic MetaData getCurrentSong() {\n\t\treturn metaList[songIndex];\n\t}\n\n\tpublic int getCurrentDifficulty() {\n\t\treturn difficulties[difficultyIndex];\n\t}\n\n\tpublic NoteData getCurrentStage() {\n\t\tswitch(difficulties[difficultyIndex]) {\n\t\t\tcase 0:\n\t\t\t\treturn metaList[songIndex].beginner;\n\t\t\tcase 1:\n\t\t\t\treturn metaList[songIndex].easy;\n\t\t\tcase 2:\n\t\t\t\treturn metaList[songIndex].medium;\n\t\t\tcase 3:\n\t\t\t\treturn metaList[songIndex].hard;\n\t\t\tcase 4:\n\t\t\t\treturn metaList[songIndex].challenge;\n\t\t\tdefault:\n\t\t\t\treturn new NoteData();\n\t\t}\n\t}\n\n\tpublic float getCurrentBPM(float gamePos) {\n\t\tif(startBPMs.Count == 1) return startBPMs[0].mapBPM;\n\t\tif(startBPMs[nextBPMIndex].mapPos <= gamePos)\n\t\t\tnextBPMIndex += 1;\n\t\treturn startBPMs[nextBPMIndex - 1].mapBPM;\n\t}\n\n\tpublic float getCurrentOffset() {\n\t\treturn metaList[songIndex].offset;\n\t}\n\n\tpublic void shiftSong(bool right) {\n\t\tint length = metaList.Count;\n\t\tsongIndex += right ? 1 : -1;\n\t\tif(songIndex == -1) songIndex = length - 1;\n\t\telse if(songIndex == length) songIndex = 0;\n\t\tstartBPMs = metaList[songIndex].bpms;\n\t\tsetDifficulties(metaList[songIndex]);\n\t}\n\n\tpublic void shiftDifficulties(bool down) {\n\t\tint length = difficulties.Count;\n\t\tdifficultyIndex += down ? 1 : -1;\n\t\tif(difficultyIndex == -1) difficultyIndex = length - 1;\n\t\telse if(difficultyIndex == length) difficultyIndex = 0;\n\t}\n\n\tpublic float getSongTimer() {\n\t\treturn _nowPlaying.time;\n\t}\n\n\tpublic IEnumerator playSampleAudio() {\n\t\tstring path = metaList[songIndex].musicPath;\n\t\tfloat timeStart = metaList[songIndex].sampleStart;\n\t\tfloat timeDuration = metaList[songIndex].sampleLength;\n\t\tint playingIndex = songIndex;\n\t\tWWW www = new WWW(\"file://\" + path.Replace(\"\\\\\", \"/\"));\n\t\tyield return www;\n\t\t_nowPlaying.clip = (path.LastIndexOf(\".mp3\") != -1) ? NAudioPlayer.FromMp3Data(www.bytes) : www.GetAudioClip(false);\n\t\twhile(playingIndex == songIndex) {\n\t\t\t_nowPlaying.volume = 1;\n\t\t\t_nowPlaying.time = timeStart;\n\t\t\t_nowPlaying.Play();\n\t\t\twhile(_nowPlaying.time < (timeStart + timeDuration - 1)) {\n\t\t\t\tyield return new WaitForSeconds(0.01f);\n\t\t\t\tif(playingIndex != songIndex) break;\n\t\t\t}\n\t\t\tfloat t = _nowPlaying.volume;\n\t\t\twhile (t > 0.0f) {\n\t\t\t\tif(playingIndex != songIndex) break;\n\t\t\t\tt -= 0.01f;\n\t\t\t\t_nowPlaying.volume = t;\n\t\t\t\tyield return new WaitForSeconds(0.01f);\n\t\t\t}\n\t\t\tif(playingIndex != songIndex) break;\n\t\t\t_nowPlaying.Stop();\n\t\t}\n\t}\n\n\tpublic IEnumerator playAudio(float offset) {\n\t\t_isStarted = true;\n\t\tyield return new WaitForSeconds(offset);\n\t\t_nowPlaying.Play();\n\t\tDebug.Log(\"playing The audio\");\n\t}\n}\n", 587 | "file": "Assets/Scripts/MapController.cs", 588 | "file_size": 4198, 589 | "file_write_time": 131403821766576013, 590 | "settings": 591 | { 592 | "buffer_size": 4047, 593 | "line_ending": "Windows", 594 | "scratch": true 595 | } 596 | } 597 | ], 598 | "build_system": "Packages/User/clang.sublime-build", 599 | "build_system_choices": 600 | [ 601 | [ 602 | [ 603 | [ 604 | "Packages/C++/C++ Single File.sublime-build", 605 | "" 606 | ], 607 | [ 608 | "Packages/C++/C++ Single File.sublime-build", 609 | "Run" 610 | ], 611 | [ 612 | "Packages/User/clang.sublime-build", 613 | "" 614 | ], 615 | [ 616 | "Packages/User/clang.sublime-build", 617 | "Run" 618 | ] 619 | ], 620 | [ 621 | "Packages/User/clang.sublime-build", 622 | "Run" 623 | ] 624 | ] 625 | ], 626 | "build_varint": "", 627 | "command_palette": 628 | { 629 | "height": 354.0, 630 | "last_filter": "install", 631 | "selected_items": 632 | [ 633 | [ 634 | "install", 635 | "Package Control: Install Package" 636 | ], 637 | [ 638 | "remove", 639 | "Package Control: Remove Package" 640 | ], 641 | [ 642 | "Package Control: ", 643 | "Package Control: List Packages" 644 | ], 645 | [ 646 | "toggle", 647 | "View: Toggle Side Bar" 648 | ], 649 | [ 650 | "vie", 651 | "View: Toggle Side Bar" 652 | ] 653 | ], 654 | "width": 814.0 655 | }, 656 | "console": 657 | { 658 | "height": 190.0, 659 | "history": 660 | [ 661 | "clear()", 662 | "clear", 663 | "os.system(\"clear\")", 664 | "import os", 665 | "os.system(\"clear\")", 666 | "clear()", 667 | "clear", 668 | "cls", 669 | "import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by) " 670 | ] 671 | }, 672 | "distraction_free": 673 | { 674 | "menu_visible": true, 675 | "show_minimap": false, 676 | "show_open_files": false, 677 | "show_tabs": false, 678 | "side_bar_visible": false, 679 | "status_bar_visible": false 680 | }, 681 | "expanded_folders": 682 | [ 683 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets", 684 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts", 685 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Shader" 686 | ], 687 | "file_history": 688 | [ 689 | "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/HoleController.cs", 690 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/GameController.cs", 691 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/MenuController.cs", 692 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/MetaData.cs", 693 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/MapController.cs", 694 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/FontBlinking.cs", 695 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/ShowDifficulty.cs", 696 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/NoteController.cs", 697 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/SuccessTrigger.cs", 698 | "/D/Projects/UnityProjects/Music Rhythm Game/Songs/Bad Apple!!/Bad Apple!!.sm", 699 | "/D/Projects/UnityProjects/Music Rhythm Game/Songs/Bad Apple!! (REDALiCE Remix)/Bad Apple!! (REDALiCE Remix).sm", 700 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/LoadingController.cs", 701 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Shader/SpriteGradient.shader", 702 | "/D/Software Portable/PortableApps/Subline Text 3/Data/Packages/UnityShader/UnityShader.sublime-settings", 703 | "/D/Software Portable/PortableApps/Subline Text 3/Data/Packages/User/UnityShader.sublime-settings", 704 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/GradientColor.cs", 705 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/MusicController.cs", 706 | "/D/Projects/UnityProjects/Music Rhythm Game/Songs/[CMC-008]Little Busters! ~TV animation ver.~/Little Busters! ~TV animation ver.~.sm", 707 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/ScoreDisplay.cs", 708 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/NAudioPlayer.cs", 709 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/songData.cs", 710 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/mapData.cs", 711 | "/D/Projects/UnityProjects/Music Rhythm Game/.gitignore", 712 | "/D/Projects/UnityProjects/Music Rhythm Game/Songs/Trust's Dwi 2012.10.15 (NO.13) [ Little Busters! op] v1/Little Busters OP.sm", 713 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/songAssets.cs", 714 | "/D/Projects/UnityProjects/Music Rhythm Game/Music Rhythm Game.sublime-project", 715 | "/D/Software Portable/PortableApps/Subline Text 3/Data/Packages/OmniSharp/PrebuiltOmniSharpServer/config.json", 716 | "/C/Users/NarakuAngel/Desktop/hugeInt.cpp", 717 | "/C/Users/NarakuAngel/Desktop/main.cpp", 718 | "/D/Projects/SDL Project/SDLTest/src/SDLTest.cpp", 719 | "/D/Projects/SDL Project/SDLTest/HW1_404262614_許孟傑.cpp", 720 | "/D/Projects/SDL Project/SDLTest/SDLTest.cpp", 721 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/LoadingController.cs", 722 | "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/BallRollFix.cs", 723 | "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/CameraController.cs", 724 | "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/GlobalBallEffects.cs", 725 | "/D/Projects/SDL Project/main.cpp", 726 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/GameController.cs", 727 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/GameCollector.cs", 728 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/DestroyByBoundary.cs", 729 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/DestroyByContact.cs", 730 | "/D/Projects/UnityProjects/Music Rhythm Game/Assets/Scripts/Mover.cs", 731 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/Mover.cs", 732 | "/D/Projects/UnityProjects/Roll-a-Ball-Exercise/Assets/Script/CameraController.cs", 733 | "/D/Projects/UnityProjects/Pool-Homework/Assets/GlobalHoleEffects.cs", 734 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/PlayerController.cs", 735 | "/D/Projects/UnityProjects/Pool-Homework/Assets/globalBallEffects.cs", 736 | "/D/Projects/UnityProjects/Roll-a-Ball-Exercise/Assets/Script/PlayerController.cs", 737 | "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/PlayerController.cs", 738 | "/C/Users/NarakuAngel/Desktop/Games Topic.txt", 739 | "/D/Projects/UnityProjects/Music Game/Assets/Scripts/ScoreBoard.js", 740 | "/D/Projects/UnityProjects/Music Game/Assets/Scripts/Play_Song.js", 741 | "/D/Projects/UnityProjects/Music Game/Assets/Scripts/Button.js", 742 | "/D/Projects/UnityProjects/Music Game/Assets/Scripts/Note.js", 743 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/DestoryByTime.cs", 744 | "/D/Python/Red-DiscordBot/data/trivia/kurojp1.txt", 745 | "/D/Python/Red-DiscordBot/data/trivia/kurojp.txt", 746 | "/D/Projects/UnityProjects/Music Game/Assets/Note.js", 747 | "/D/Python/WildBeast/runtime/commands/custom/gwdetail.js", 748 | "/D/Python/WildBeast/runtime/commands/custom/myturn.js", 749 | "/C/Users/NarakuAngel/Desktop/gamewith sort", 750 | "/C/Users/NarakuAngel/Desktop/test.txt", 751 | "/D/Python/WildBeast/gamewithData.json", 752 | "/D/Python/WildBeast/runtime/commands/custom/nihe.js", 753 | "/D/Python/WildBeast/runtime/commands/custom/gwsearch.js", 754 | "/D/Python/WildBeast/gamewithData.js", 755 | "/D/Python/WildBeast/runtime/commands/custom/zoba.js", 756 | "/D/Python/WildBeast/runtime/commands/custom/setGame.js", 757 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Scripts/RandomRotater.cs", 758 | "/D/Projects/UnityProjects/Roll-a-Ball-Exercise/Assets/Script/Rotator.cs", 759 | "/D/Projects/nekowizTW-sub/nekowizTW-stageWalkthrough-Lionfree/index.html", 760 | "/D/Projects/nekowizTW-sub/nekowizTW-stageWalkthrough-Lionfree/assets/js/main.js", 761 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/RandomRotater.cs", 762 | "/D/Projects/Clanguage/test.c", 763 | "/C/Users/NarakuAngel/Documents/PCLink/rename.bat", 764 | "/H/Need Upload/rename.bat", 765 | "/D/Projects/UnityProjects/Space Shooter Exercise/Assets/Mover.cs", 766 | "/C/Users/NarakuAngel/Desktop/Data Collection for nekowizTW.txt", 767 | "/D/FFOutput/rename.bat", 768 | "/C/Users/NarakuAngel/Documents/PCLink/rename.csv", 769 | "/D/Projects/laravelLearn/blog/resources/views/cars/show.blade.php", 770 | "/D/Projects/laravelLearn/blog/app/Http/Controllers/CarController.php", 771 | "/D/Projects/laravelLearn/blog/routes/web.php", 772 | "/D/Projects/laravelLearn/blog/app/Car.php", 773 | "/D/Projects/laravelLearn/blog/database/migrations/2017_01_15_170251_create_cars_table.php", 774 | "/D/Projects/laravelLearn/blog/config/app.php", 775 | "/D/Projects/laravelLearn/blog/composer.json", 776 | "/D/Projects/laravelLearn/blog/.env", 777 | "/D/Projects/laravelLearn/blog/config/database.php", 778 | "/C/Users/NarakuAngel/Documents/zerojudge/b836.c", 779 | "/C/Users/NarakuAngel/Documents/zerojudge/a694.c", 780 | "/C/Users/NarakuAngel/Documents/zerojudge/b836", 781 | "/C/Users/NarakuAngel/Documents/zerojudge/d016.c", 782 | "/C/Users/NarakuAngel/Documents/zerojudge/d190.c", 783 | "/C/Users/NarakuAngel/Documents/zerojudge/a007.c", 784 | "/D/Software Portable/PortableApps/Subline Text 3/Data/Packages/User/clang.sublime-build", 785 | "/C/Irvine/Examples/ch08/32 bit/swap.asm", 786 | "/C/Irvine/Examples/ch08/32 bit/AddTwo.asm", 787 | "/C/Users/NarakuAngel/Desktop/Project32_VS2015/Projects/Integer Arithmetic/shift_rotate_demo.asm", 788 | "/C/Users/NarakuAngel/Desktop/Project32_VS2015/Projects/Integer Arithmetic/mul_div_demo.asm", 789 | "/C/Irvine/Examples/ch07/32 bit/ExtAdd.asm", 790 | "/C/Irvine/Examples/ch07/32 bit/imul.asm", 791 | "/C/Users/NarakuAngel/Desktop/Project32_VS2015/Projects/ProtoExample/Csum.asm", 792 | "/C/Users/NarakuAngel/Desktop/Project32_VS2015/Projects/ProtoExample/ArryFill.asm", 793 | "/C/Users/NarakuAngel/Desktop/Project32_VS2015/Projects/Integer Arithmetic/MultiShift.asm", 794 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/User.aspx.cs", 795 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Restaurant.aspx.cs", 796 | "/D/Projects/aspnetProject/README.md", 797 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Restaurant.aspx", 798 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Datatype.cs", 799 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/models.cs", 800 | "/D/Projects/aspnetHomework/Web1c/DrinkShop.aspx", 801 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/assets/js/site.js", 802 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Evaluate.aspx", 803 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Evaluate.aspx.cs", 804 | "/D/Projects/aspnetHomework/Web1c/Scripts/site.js", 805 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Default.aspx", 806 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Default.aspx.cs", 807 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/User.aspx", 808 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Models.cs", 809 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Site.Master.cs", 810 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Site.Master", 811 | "/D/Projects/aspnetProject/WebApplication1/WebApplication1/Default.aspx.designer.cs", 812 | "/D/Ruby/paizaTester/practice.rb", 813 | "/D/Software Portable/PortableApps/Subline Text 3/Data/Packages/OmniSharp/OmniSharpSublime.sublime-settings", 814 | "/D/Ruby/paizaTester/testcase3.txt", 815 | "/D/Ruby/paizaTester/testcase2.txt", 816 | "/D/Ruby/paizaTester/testcase1.txt" 817 | ], 818 | "find": 819 | { 820 | "height": 72.0 821 | }, 822 | "find_in_files": 823 | { 824 | "height": 164.0, 825 | "where_history": 826 | [ 827 | "D:\\Projects\\UnityProjects\\Music Rhythm Game\\Assets\\Scripts" 828 | ] 829 | }, 830 | "find_state": 831 | { 832 | "case_sensitive": true, 833 | "find_history": 834 | [ 835 | "UnityObject", 836 | " ", 837 | "timer", 838 | "clone = ", 839 | "clone", 840 | " as Rigidbody", 841 | ".transform.rotation)", 842 | "notes.leftNote.transform.rotation)", 843 | "Instantiate", 844 | "x", 845 | "y", 846 | "abs", 847 | "radius", 848 | "radius2", 849 | "radius", 850 | "area", 851 | "down", 852 | "right", 853 | "up", 854 | "left", 855 | "up", 856 | "dis", 857 | "getCurrentOffset()", 858 | "original", 859 | "mapController.getCurrentOffset()", 860 | "barTime", 861 | "disOffset", 862 | "_now", 863 | "Debug.Log", 864 | "Debug.Log(\"( \" + songTimer + \", \" + timer + \")\");", 865 | "distance", 866 | "arrowSpeed", 867 | "offset", 868 | "disOffset", 869 | "noteCnt++;", 870 | "Deb", 871 | "inNotes", 872 | "bpm.Substring(eqPos)", 873 | "offset", 874 | "Wait", 875 | "bpms", 876 | "thisStage.bars[waveMark]", 877 | "timeS", 878 | "break;", 879 | "thisStage = ", 880 | "timeOffset", 881 | "timerReset", 882 | "BPM", 883 | "double", 884 | "timer", 885 | "Wave", 886 | "){", 887 | "timerReset", 888 | "bars", 889 | "position", 890 | "difficultyIndex", 891 | "loadingText", 892 | "public Image", 893 | "Image", 894 | ".nowPlaying", 895 | "nowPlaying", 896 | "shift", 897 | "changeSong", 898 | "change", 899 | "shiftDifficulties", 900 | "difficulties", 901 | "nowPlaying", 902 | "loadComplete", 903 | "songIndex", 904 | "push", 905 | "color", 906 | "beginner", 907 | "beginning", 908 | ".y", 909 | "TopColor", 910 | "v.position.y", 911 | "topY", 912 | "bottomY", 913 | ":", 914 | "nowPlayingPath", 915 | "playSampleAudio", 916 | "(.+)\\n(No\\. \\d+)", 917 | "musicController", 918 | "MusicController", 919 | "List", 920 | "lines.Count", 921 | "Notes", 922 | "songData", 923 | "fileData", 924 | "rawline", 925 | "dance-double", 926 | "bpms", 927 | "songData", 928 | "DISPLAYBPM", 929 | "songData", 930 | "readonly", 931 | "songSampleLength", 932 | "songSampleStart", 933 | "songAudioPath", 934 | "songBgPath", 935 | "songArtist", 936 | "songList", 937 | "songName", 938 | "metaData", 939 | "songData", 940 | "next", 941 | "change", 942 | "stop()", 943 | "play", 944 | "AmbientAudio", 945 | "ongAudioPath", 946 | "Debug.Log", 947 | "CameraController", 948 | "cameraController", 949 | "public", 950 | "menuPos", 951 | "transform.velocity", 952 | "std::", 953 | "int dayOfYear", 954 | "!=", 955 | "+", 956 | "true", 957 | "another", 958 | "typeof", 959 | ">>", 960 | "Array", 961 | "class T", 962 | "class" 963 | ], 964 | "highlight": true, 965 | "in_selection": false, 966 | "preserve_case": false, 967 | "regex": true, 968 | "replace_history": 969 | [ 970 | "\\2 \\1", 971 | "mapController", 972 | "MapController", 973 | "sampleLength", 974 | "sampleStart", 975 | "musicPath", 976 | "backgroundPath", 977 | "artist", 978 | "title", 979 | "MetaData", 980 | "metaData", 981 | "\\n", 982 | "\\1`", 983 | "\\1 \\2 - ", 984 | "\\n", 985 | "", 986 | "'", 987 | ".", 988 | "\"\\1\"\\n", 989 | "valuate", 990 | "valulate", 991 | "ViewType", 992 | "ChangeVisibleState", 993 | "order_session", 994 | "", 995 | "12-0\\1 ", 996 | "-\n title: \"AbyssCode05 冥世的天蓋\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"yellow\"\n-\n title: \"AbyssCode05 冥世的天蓋\"\n start: \"2016-\\1-\\2 \\6:00\"\n end: \"2016-\\1-\\2 \\7:00\"\n color: \"yellow\"", 997 | "-\n title: \"AbyssCode04 燃燒殆盡的陽光\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"red\"\n-\n title: \"AbyssCode04 燃燒殆盡的陽光\"\n start: \"2016-\\1-\\2 \\6:00\"\n end: \"2016-\\1-\\2 \\7:00\"\n color: \"red\"", 998 | "-\n title: \"AbyssCode03 生而墮於虛無\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"blue\"\n-\n title: \"AbyssCode03 生而墮於虛無\"\n start: \"2016-\\1-\\2 \\6:00\"\n end: \"2016-\\1-\\2 \\7:00\"\n color: \"blue\"", 999 | "-\n title: \"AbyssCode02 盲目的調和\"\n start: \"2016-\\1-\\2 \\4:00\"\n end: \"2016-\\1-\\2 \\5:00\"\n color: \"yellow\"\n-\n title: \"AbyssCode02 盲目的調和\"\n start: \"2016-\\1-\\2 \\6:00\"\n end: \"2016-\\1-\\2 \\7:00\"\n color: \"yellow\"\n-\n title: \"AbyssCode02 盲目的調和\"\n start: \"2016-\\1-\\2 \\8:00\"\n end: \"2016-\\1-\\2 \\9:00\"\n color: \"yellow\"", 1000 | "-\n title: \"AbyssCode01 黑殼之王\"\n start: \"2016-\\1-\\2 \\4:00\"\n end: \"2016-\\1-\\2 \\5:00\"\n color: \"red\"\n-\n title: \"AbyssCode01 黑殼之王\"\n start: \"2016-\\1-\\2 \\6:00\"\n end: \"2016-\\1-\\2 \\7:00\"\n color: \"red\"\n-\n title: \"AbyssCode01 黑殼之王\"\n start: \"2016-\\1-\\2 \\8:00\"\n end: \"2016-\\1-\\2 \\9:00\"\n color: \"red\"", 1001 | "== \\2 ==\\n\\n\\1\\2\\3", 1002 | "|center|670", 1003 | "]]\\n\\n", 1004 | "", 1005 | "#b29a97", 1006 | " ", 1007 | "", 1008 | ": \"*\"", 1009 | "== \\2 == \\n\\n\\1\\2\\3", 1010 | "==", 1011 | "OrderDrinks_Order_Panel.Visible = false;\\nOrderDrinks_Porperty_Panel.Visible = false;", 1012 | "OrderDrinks_Order_Panel.Visible = true;\\nOrderDrinks_Porperty_Panel.Visible = true;", 1013 | "Order_New.CssClass = \"ui red button\"", 1014 | "11-0\\1 ", 1015 | "11-0\\1\\s", 1016 | "-\n title: \"Tempest Blader\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"red\"\n-\n title: \"Tempest Blader\"\n start: \"2016-\\1-\\2 \\5:00\"\n end: \"2016-\\1-\\2 \\6:00\"\n color: \"red\"", 1017 | "-\n title: \"Demon’s Blader\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"red\"\n-\n title: \"Demon’s Blader\"\n start: \"2016-\\1-\\2 \\5:00\"\n end: \"2016-\\1-\\2 \\6:00\"\n color: \"red\"", 1018 | "-\n title: \"Divine Blader\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"yellow\"\n-\n title: \"Divine Blader\"\n start: \"2016-\\1-\\2 \\5:00\"\n end: \"2016-\\1-\\2 \\6:00\"\n color: \"yellow\"", 1019 | "-\n title: \"Heretic Blader\"\n start: \"2016-\\1-\\2 \\3:00\"\n end: \"2016-\\1-\\2 \\4:00\"\n color: \"blue\"\\n-\n title: \"Heretic Blader\"\n start: \"2016-\\1-\\2 \\5:00\"\n end: \"2016-\\1-\\2 \\6:00\"\n color: \"blue\"", 1020 | "OrderDrinks_Item_Dataset", 1021 | "{\\n logger.Error(sqlE);\\n Response", 1022 | "\\n logger.Error(sqlE);\\n Response", 1023 | "\\n logger.Error(\"Error\");\\n Response", 1024 | ", ", 1025 | "\\n", 1026 | "@@colorList", 1027 | "@@matrix", 1028 | "/*font-weight: bolder;*/", 1029 | "/*font-weight: bold;*/", 1030 | "{ value: '\\1', label: '\\1'}", 1031 | "{ value: \\1, label: \\1}", 1032 | "{ value: \\1, label: \\1},", 1033 | ",", 1034 | "{ value: \\1, label: \\1}", 1035 | "let", 1036 | "pure-u-md", 1037 | "this.", 1038 | "data_deck.card", 1039 | "querySourceC", 1040 | "data_source.card", 1041 | "queryParamsGap", 1042 | "writeJSON", 1043 | "cardSource", 1044 | "\\n", 1045 | "", 1046 | "}\\n", 1047 | "}", 1048 | "function \\1", 1049 | "this", 1050 | "dataCollec.cardDeck", 1051 | "dataCollec.dataSource", 1052 | ",", 1053 | "\"id\": \"\\1\"", 1054 | "\\n", 1055 | "\\n", 1056 | "\\}\\}\\n", 1057 | "前置:", 1058 | "前置", 1059 | ":", 1060 | "\\n", 1061 | "\"\\1\"", 1062 | "2016-", 1063 | "Reactselect", 1064 | "Nouislider", 1065 | "{ \"value\": \"\\1\", \"label\": \"\\1\"}", 1066 | "魔族", 1067 | "術士", 1068 | "戰士", 1069 | "物質", 1070 | "亞人", 1071 | "\"妖精", 1072 | "天使", 1073 | "神族", 1074 | "龍族", 1075 | "雷", 1076 | "水", 1077 | "火", 1078 | "\\n|", 1079 | "},\\n\\t\"", 1080 | "},\\n\"", 1081 | "\\\":{},", 1082 | ",\\n\\t", 1083 | ",\\n" 1084 | ], 1085 | "reverse": false, 1086 | "show_context": true, 1087 | "use_buffer2": true, 1088 | "whole_word": false, 1089 | "wrap": true 1090 | }, 1091 | "groups": 1092 | [ 1093 | { 1094 | "selected": 2, 1095 | "sheets": 1096 | [ 1097 | { 1098 | "buffer": 0, 1099 | "file": "Songs/[CMC-008]Little Busters! ~TV animation ver.~/Little Busters! ~TV animation ver.~.sm", 1100 | "semi_transient": false, 1101 | "settings": 1102 | { 1103 | "buffer_size": 6384, 1104 | "regions": 1105 | { 1106 | }, 1107 | "selection": 1108 | [ 1109 | [ 1110 | 354, 1111 | 354 1112 | ] 1113 | ], 1114 | "settings": 1115 | { 1116 | "in_converting": true, 1117 | "is_init_dirty_state": false, 1118 | "origin_encoding": "UTF-8-SIG", 1119 | "syntax": "Packages/Text/Plain text.tmLanguage", 1120 | "translate_tabs_to_spaces": false 1121 | }, 1122 | "translation.x": 0.0, 1123 | "translation.y": 0.0, 1124 | "zoom_level": 1.0 1125 | }, 1126 | "stack_index": 1, 1127 | "type": "text" 1128 | }, 1129 | { 1130 | "buffer": 1, 1131 | "file": "Assets/Scripts/NoteController.cs", 1132 | "semi_transient": false, 1133 | "settings": 1134 | { 1135 | "buffer_size": 1402, 1136 | "regions": 1137 | { 1138 | }, 1139 | "selection": 1140 | [ 1141 | [ 1142 | 424, 1143 | 424 1144 | ] 1145 | ], 1146 | "settings": 1147 | { 1148 | "in_converting": true, 1149 | "is_init_dirty_state": false, 1150 | "oops": 1151 | { 1152 | "0,5": "Using directive is not used by code and can be removed safely.", 1153 | "1372,1379": "Redundant empty 'default' switch branch", 1154 | "140,145": "Name should have prefix '_'. (Rule 'Fields').", 1155 | "165,171": "Name should have prefix '_'. (Rule 'Fields').", 1156 | "193,205": "Name should have prefix '_'. (Rule 'Fields').", 1157 | "26,31": "Using directive is not used by code and can be removed safely.", 1158 | "852,860": "Parameter can be declared with base type" 1159 | }, 1160 | "origin_encoding": "UTF-8-SIG", 1161 | "syntax": "Packages/Unity3D/UnityC#.tmLanguage", 1162 | "translate_tabs_to_spaces": false 1163 | }, 1164 | "translation.x": 0.0, 1165 | "translation.y": 702.0, 1166 | "zoom_level": 1.0 1167 | }, 1168 | "stack_index": 3, 1169 | "type": "text" 1170 | }, 1171 | { 1172 | "buffer": 2, 1173 | "file": "README.md", 1174 | "semi_transient": false, 1175 | "settings": 1176 | { 1177 | "buffer_size": 3415, 1178 | "regions": 1179 | { 1180 | }, 1181 | "selection": 1182 | [ 1183 | [ 1184 | 3057, 1185 | 3057 1186 | ] 1187 | ], 1188 | "settings": 1189 | { 1190 | "auto_complete": false, 1191 | "is_init_dirty_state": false, 1192 | "origin_encoding": "UTF-8", 1193 | "syntax": "Packages/Markdown/Markdown.sublime-syntax" 1194 | }, 1195 | "translation.x": 0.0, 1196 | "translation.y": 2035.0, 1197 | "zoom_level": 1.0 1198 | }, 1199 | "stack_index": 0, 1200 | "type": "text" 1201 | }, 1202 | { 1203 | "buffer": 3, 1204 | "file": "Assets/Shader/SpriteGradient.shader", 1205 | "semi_transient": true, 1206 | "settings": 1207 | { 1208 | "buffer_size": 1696, 1209 | "regions": 1210 | { 1211 | }, 1212 | "selection": 1213 | [ 1214 | [ 1215 | 1137, 1216 | 1148 1217 | ] 1218 | ], 1219 | "settings": 1220 | { 1221 | "is_init_dirty_state": false, 1222 | "syntax": "Packages/Unity Shader/UnityShader.sublime-syntax", 1223 | "tab_size": 4, 1224 | "translate_tabs_to_spaces": true 1225 | }, 1226 | "translation.x": 0.0, 1227 | "translation.y": 0.0, 1228 | "zoom_level": 1.0 1229 | }, 1230 | "stack_index": 2, 1231 | "type": "text" 1232 | }, 1233 | { 1234 | "buffer": 4, 1235 | "file": "/D/Projects/UnityProjects/Pool-Homework/Assets/Script/GlobalBallEffects.cs", 1236 | "semi_transient": false, 1237 | "settings": 1238 | { 1239 | "buffer_size": 267, 1240 | "regions": 1241 | { 1242 | }, 1243 | "selection": 1244 | [ 1245 | [ 1246 | 247, 1247 | 261 1248 | ] 1249 | ], 1250 | "settings": 1251 | { 1252 | "is_init_dirty_state": false, 1253 | "syntax": "Packages/Unity3D/UnityC#.tmLanguage" 1254 | }, 1255 | "translation.x": 0.0, 1256 | "translation.y": 0.0, 1257 | "zoom_level": 1.0 1258 | }, 1259 | "stack_index": 4, 1260 | "type": "text" 1261 | }, 1262 | { 1263 | "buffer": 5, 1264 | "file": "Assets/Scripts/GameController.cs", 1265 | "semi_transient": false, 1266 | "settings": 1267 | { 1268 | "buffer_size": 4290, 1269 | "regions": 1270 | { 1271 | }, 1272 | "selection": 1273 | [ 1274 | [ 1275 | 1797, 1276 | 1797 1277 | ] 1278 | ], 1279 | "settings": 1280 | { 1281 | "in_converting": true, 1282 | "is_init_dirty_state": false, 1283 | "oops": 1284 | { 1285 | "1521,1522": "Redundant explicit size in array creation", 1286 | "200,208": "Name should have prefix '_'. (Rule 'Fields').", 1287 | "210,218": "Name should have prefix '_'. (Rule 'Fields').", 1288 | "220,226": "Name should have prefix '_'. (Rule 'Fields').", 1289 | "228,237": "Name should have prefix '_'. (Rule 'Fields').", 1290 | "2418,2425": "Use 'var' keyword", 1291 | "3175,3186": "'getSongTime' should start with an upper case letter. (Rule 'Methods')", 1292 | "3228,3240": "'comboSuccess' should start with an upper case letter. (Rule 'Methods')", 1293 | "3392,3401": "'comboFail' should start with an upper case letter. (Rule 'Methods')", 1294 | "3406,3410": "Parameter can be IComparable", 1295 | "4202,4207": "Comparison of floating point numbers can be unequal due to the differing precision of the two values.", 1296 | "440,441": "Empty argument list is redundant", 1297 | "474,480": "Name should have prefix '_'. (Rule 'Fields').", 1298 | "496,504": "Name should have prefix '_'. (Rule 'Fields').", 1299 | "522,527": "Name should have prefix '_'. (Rule 'Fields').", 1300 | "542,551": "Name should have prefix '_'. (Rule 'Fields').", 1301 | "566,575": "Name should have prefix '_'. (Rule 'Fields').", 1302 | "591,596": "Name should have prefix '_'. (Rule 'Fields').", 1303 | "615,619": "Name should have prefix '_'. (Rule 'Fields').", 1304 | "857,865": "The private field 'barCount' is never assigned", 1305 | "882,892": "The private field 'arrowSpeed' is never assigned" 1306 | }, 1307 | "origin_encoding": "UTF-8-SIG", 1308 | "syntax": "Packages/Unity3D/UnityC#.tmLanguage", 1309 | "translate_tabs_to_spaces": false 1310 | }, 1311 | "translation.x": 0.0, 1312 | "translation.y": 1169.0, 1313 | "zoom_level": 1.0 1314 | }, 1315 | "stack_index": 5, 1316 | "type": "text" 1317 | }, 1318 | { 1319 | "buffer": 6, 1320 | "file": "Assets/Scripts/MapController.cs", 1321 | "semi_transient": false, 1322 | "settings": 1323 | { 1324 | "buffer_size": 4047, 1325 | "regions": 1326 | { 1327 | }, 1328 | "selection": 1329 | [ 1330 | [ 1331 | 3906, 1332 | 3918 1333 | ] 1334 | ], 1335 | "settings": 1336 | { 1337 | "in_converting": true, 1338 | "is_init_dirty_state": false, 1339 | "oops": 1340 | { 1341 | "1417,1428": "'getSongList' should start with an upper case letter. (Rule 'Methods')", 1342 | "1474,1491": "'getDifficultyList' should start with an upper case letter. (Rule 'Methods')", 1343 | "1540,1554": "'getCurrentSong' should start with an upper case letter. (Rule 'Methods')", 1344 | "1605,1625": "'getCurrentDifficulty' should start with an upper case letter. (Rule 'Methods')", 1345 | "1691,1706": "'getCurrentStage' should start with an upper case letter. (Rule 'Methods')", 1346 | "2065,2078": "'getCurrentBPM' should start with an upper case letter. (Rule 'Methods')", 1347 | "2284,2300": "'getCurrentOffset' should start with an upper case letter. (Rule 'Methods')", 1348 | "2359,2368": "'shiftSong' should start with an upper case letter. (Rule 'Methods')", 1349 | "2374,2379": "Parameter can be IComparable", 1350 | "2634,2651": "'shiftDifficulties' should start with an upper case letter. (Rule 'Methods')", 1351 | "2657,2661": "Parameter can be IComparable", 1352 | "2870,2882": "'getSongTimer' should start with an upper case letter. (Rule 'Methods')", 1353 | "2938,2953": "'playSampleAudio' should start with an upper case letter. (Rule 'Methods')", 1354 | "3149,3152": "Use 'var' keyword", 1355 | "3252,3263": "'System.String.LastIndexOf' is culture-aware and missing a StringComparison argument", 1356 | "3896,3905": "'playAudio' should start with an upper case letter. (Rule 'Methods')", 1357 | "519,532": "Use 'var' keyword", 1358 | "755,763": "Use 'var' keyword" 1359 | }, 1360 | "origin_encoding": "UTF-8-SIG", 1361 | "syntax": "Packages/Unity3D/UnityC#.tmLanguage", 1362 | "translate_tabs_to_spaces": false 1363 | }, 1364 | "translation.x": 0.0, 1365 | "translation.y": 3354.0, 1366 | "zoom_level": 1.0 1367 | }, 1368 | "stack_index": 6, 1369 | "type": "text" 1370 | } 1371 | ] 1372 | } 1373 | ], 1374 | "incremental_find": 1375 | { 1376 | "height": 34.0 1377 | }, 1378 | "input": 1379 | { 1380 | "height": 55.0 1381 | }, 1382 | "layout": 1383 | { 1384 | "cells": 1385 | [ 1386 | [ 1387 | 0, 1388 | 0, 1389 | 1, 1390 | 1 1391 | ] 1392 | ], 1393 | "cols": 1394 | [ 1395 | 0.0, 1396 | 1.0 1397 | ], 1398 | "rows": 1399 | [ 1400 | 0.0, 1401 | 1.0 1402 | ] 1403 | }, 1404 | "menu_visible": true, 1405 | "output.exec": 1406 | { 1407 | "height": 116.0 1408 | }, 1409 | "output.find_results": 1410 | { 1411 | "height": 0.0 1412 | }, 1413 | "output.variable_get": 1414 | { 1415 | "height": 116.0 1416 | }, 1417 | "pinned_build_system": "", 1418 | "project": "Music Rhythm Game.sublime-project", 1419 | "replace": 1420 | { 1421 | "height": 118.0 1422 | }, 1423 | "save_all_on_build": true, 1424 | "select_file": 1425 | { 1426 | "height": 0.0, 1427 | "last_filter": "", 1428 | "selected_items": 1429 | [ 1430 | [ 1431 | "inde", 1432 | "assets\\js\\index_embed.js" 1433 | ], 1434 | [ 1435 | "app", 1436 | "dist\\scripts\\app.js" 1437 | ], 1438 | [ 1439 | "", 1440 | "dist\\scripts\\app.js" 1441 | ] 1442 | ], 1443 | "width": 0.0 1444 | }, 1445 | "select_project": 1446 | { 1447 | "height": 0.0, 1448 | "last_filter": "", 1449 | "selected_items": 1450 | [ 1451 | ], 1452 | "width": 0.0 1453 | }, 1454 | "select_symbol": 1455 | { 1456 | "height": 0.0, 1457 | "last_filter": "", 1458 | "selected_items": 1459 | [ 1460 | ], 1461 | "width": 0.0 1462 | }, 1463 | "selected_group": 0, 1464 | "settings": 1465 | { 1466 | }, 1467 | "show_minimap": true, 1468 | "show_open_files": true, 1469 | "show_tabs": true, 1470 | "side_bar_visible": true, 1471 | "side_bar_width": 190.0, 1472 | "status_bar_visible": true, 1473 | "template_settings": 1474 | { 1475 | } 1476 | } 1477 | --------------------------------------------------------------------------------