{"id":1859,"date":"2021-07-22T20:00:12","date_gmt":"2021-07-22T12:00:12","guid":{"rendered":"http:\/\/lonelinerd.com\/?p=1859"},"modified":"2022-10-16T21:54:37","modified_gmt":"2022-10-16T13:54:37","slug":"unity-rhythm-game-part-7","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2021\/07\/22\/unity-rhythm-game-part-7\/","title":{"rendered":"\u300aUnity\u3067\u4f5c\u308b\u30ea\u30ba\u30e0\u30b2\u30fc\u30e0\u300b\u5b78\u7fd2\u7b46\u8a18\uff08\u4e03\uff09\uff1a\u300c\u5224\u5b9a\u529f\u80fd\u5be6\u73fe\u300d"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1859\" class=\"elementor elementor-1859\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ec624a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ec624a0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e3c2e46\" data-id=\"e3c2e46\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b3c72c7 elementor-widget elementor-widget-text-editor\" data-id=\"b3c72c7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p><b>\u66f8\u540d\uff1a\u300aUnity\u3067\u4f5c\u308b\u30ea\u30ba\u30e0\u30b2\u30fc\u30e0\u300b<\/b><\/p><p><strong>\u4f5c\u8005\uff1a\u9577\u5d0e\u5927\u5b66\u30de\u30eb\u30c1\u30e1\u30c7\u30a3\u30a2\u7814\u7a76\u4f1a<\/strong><\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c88a8c2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c88a8c2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2af6fca\" data-id=\"2af6fca\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1a0f93e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1a0f93e\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fd5f344 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fd5f344\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e095ec0\" data-id=\"e095ec0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-85e0ac2 elementor-widget elementor-widget-text-editor\" data-id=\"85e0ac2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4 class=\"md-end-block md-heading\"><span style=\"text-decoration: underline;\"><strong><span class=\"md-plain\">\u5224\u5b9a\u529f\u80fd\u5be6\u73fe<\/span><\/strong><\/span><\/h4><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain md-expand\">\u5728\u672c\u66f8\u4e2d\uff0c<span style=\"color: #ff0000;\">\u6bcf\u500bnote\u7684\u8a55\u50f9\u5224\u5b9a\u662f\u7531\u4e00\u500bnote\u7684\u5f85\u8655\u7406\uff08\u8207\u5224\u5b9a\u7dda\u91cd\u758a\uff09\u6642\u9593\u4ee5\u53ca\u5176\u88ab\u8655\u7406\uff08\u88ab\u6483\u4e2d\uff09\u6642\u9593\u4e4b\u9593\u7684\u5dee\u7684\u7d55\u5c0d\u503c\u70ba\u6a19\u6e96\uff08\u55ae\u4f4d\uff1a\u79d2\uff09<\/span><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5224\u5b9a\u985e\u578b\u6709Perfect\u3001Good\u3001Bad\u4e09\u7a2e<\/span><\/p><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\">\u5177\u9ad4\u7684\u5224\u5b9a\u57df\u5e45\u5ea6\u5982\u4e0b\u5716\uff1a<\/span><\/p><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b33624 elementor-widget elementor-widget-image\" data-id=\"6b33624\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"579\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_29.png\" class=\"attachment-large size-large wp-image-1861\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_29.png 858w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_29-300x202.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_29-768x518.png 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-258e2b9 elementor-widget elementor-widget-text-editor\" data-id=\"258e2b9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5982\u679c\u5224\u5b9a\u908f\u8f2f\u55ae\u7d14\u662f\u7576\u300c\u9375\u76e4\u7684\u9375\u88ab\u6309\u4e0b\u6642\uff0c\u5c0d\u8a72\u9375\u5c0d\u61c9\u7684\u8ecc\u9053\u4e0a\u7684notes\u9032\u884c\u5224\u5b9a\u7684\u8a71\u300d\uff0c\u7576\u4e00\u500b\u8ecc\u9053\u4e0a\u524d\u5f8c\u6709\u591a\u500bnotes\u6642\uff0c\u5224\u5b9a\u7bc4\u570d\u88e1\u7684\u6240\u6709notes\u90fd\u6703\u505a\u51fa\u5c0d\u8a72\u6b21\u5224\u5b9a\u9032\u884c\u56de\u61c9\u3002<\/span><\/li><li style=\"list-style-type: none;\"><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">\u56e0\u6b64\uff0c<span style=\"color: #ff0000;\">\u5be6\u969b\u4e0a\u4e00\u6b21\u5224\u5b9a\u52d5\u4f5c\u8981\u8655\u7406\u7684\uff0c\u53ea\u6709\u8207\u8a72\u9375\u5c0d\u61c9\u7684\u8ecc\u9053\u4e2d\uff0c\u8f38\u5165\u6642\u9593\u8207\u5224\u5b9a\u6642\u6a5f\u9593\u7d55\u5c0d\u5dee\u6700\u5c0f\u7684\u4e00\u500bnote<\/span><\/span><\/p><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6d206e0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6d206e0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a771836\" data-id=\"a771836\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d4e83de elementor-widget elementor-widget-text-editor\" data-id=\"d4e83de\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4 class=\"md-end-block md-heading\"><span style=\"text-decoration: underline;\"><strong><span class=\"md-plain md-expand\">Single Note\u5224\u5b9a<\/span><\/strong><\/span><\/h4><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5224\u5b9a\u6d41\u7a0b<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u6aa2\u6e2c\u73a9\u5bb6\u8f38\u5165<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u53d6\u5f97\u8f38\u5165\u5c0d\u61c9\u7684\u8ecc\u9053\u4e0a\uff0c\u8207\u5224\u5b9a\u7dda\u6700\u63a5\u8fd1\u7684\u4e00\u500bnote<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8a08\u7b97\u5224\u5b9a\u7d50\u679c<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8abf\u7528note\u7684OnKeyDown\u51fd\u6578<\/span><\/p><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5982\u679c\u5224\u5b9a\u6210\u529f\uff08!Miss\uff09\uff0c\u5247\u57f7\u884c\u76f8\u61c9\u7684\u5224\u5b9a\u5f8c\u8655\u7406\uff08\u5982\u522a\u9664note\u7269\u9ad4\uff09<\/span><\/p><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77efea3 elementor-widget elementor-widget-image\" data-id=\"77efea3\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"594\" height=\"356\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_30.png\" class=\"attachment-large size-large wp-image-1862\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_30.png 594w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_30-300x180.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d88e17 elementor-widget elementor-widget-text-editor\" data-id=\"1d88e17\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">\u70ba\u4e86\u589e\u52a0\u5224\u5b9a\u529f\u80fd\uff0c\u4ee5\u4e0b\u7684\u5e7e\u500b\u8173\u672c\u90fd\u9032\u884c\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u7684\u4fee\u6539<\/span><\/li><\/ul><ul><li style=\"list-style-type: none;\"><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">NoteProperty<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\"><span style=\"color: #ff0000;\">\u70ba\u4e86\u9032\u884c\u5224\u5b9a\uff0c\u6211\u5011\u9700\u8981\u5f97\u5230\u7684\u4e0d\u662fnote\u6d41\u52d5\u7684\u62cd\u5b50\uff0c\u800c\u662f\u5177\u9ad4\u7684\u79d2\u6578<\/span>\u3002\u56e0\u6b64\uff0c\u5728NoteProperty\u4e2d\u9700\u8981\u6dfb\u52a0secBegin\u3001secEnd\u4f86<span style=\"color: #ff0000;\">\u4fdd\u6301note\u8207\u5224\u5b9a\u7dda\u63a5\u89f8\u7684\u6642\u9593<\/span><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">secBegin\u548csecEnd\u4e0d\u5305\u542b\u5728\u69cb\u9020\u51fd\u6578\u4e2d\uff0c\u56e0\u70ba\u4ed6\u5011\u662f\u5728\u7372\u5f97\u4e86\u901f\u5ea6\u8b8a\u5316\u4fe1\u606f\u548c\u97f3\u7b26beatBegin\u3001beatEnd\u4fe1\u606f\u4e4b\u5f8c\u624d\u9032\u884c\u8a2d\u7f6e\u7684\u3002<\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">NoteProperty<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u7528\u65bc\u9032\u884cnote\u7684\u5224\u5b9a\u8a08\u7b97<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/<span style=\"color: #ff0000;\">\u5224\u5b9a\u54ea\u500bnote\u7684\u5224\u5b9a\u6642\u9593\u8207\u73a9\u5bb6\u8f38\u5165\u6642\u9593\u6700\u70ba\u63a5\u8fd1<\/span><\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">secBegin<\/span>; <span class=\"cm-comment\">\/\/Note\u9032\u5165\u5224\u5b9a\u7dda\uff0c\u8207\u5176\u91cd\u758a\u7684\u4e00\u79d2<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">secEnd<\/span>; <span class=\"cm-comment\">\/\/Note\u96e2\u958b\u5224\u5b9a\u7dda\uff0c\u96e2\u958b\u524d\u8207\u5176\u91cd\u758a\u7684\u6700\u5f8c\u4e00\u62cd<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">BmsLoader<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">secBegin\u548csecEnd\u8207note\u7684\u5176\u4ed6\u5c6c\u6027\u4e00\u6a23\uff0c\u4e5f\u9700\u8981\u5728BmsLoader\u4e2d\u8ce6\u503c\u3002<\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable\">BmsLoader<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">filePath<\/span>)<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u628a\u4e0d\u540c\u7684\u901f\u5ea6\uff08BPM\uff09\u6bb5\u6839\u64da\u5176\u6240\u767c\u751f\u7684\u5177\u9ad4\u7bc0\u62cd\uff08beat\uff09\u5f9e\u5c0f\u5230\u5927\u6392\u5e8f<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">tempoChanges<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">tempoChanges<\/span>.<span class=\"cm-variable\">OrderBy<\/span>(<span class=\"cm-variable\">x<\/span> <span class=\"cm-operator\">=&gt;<\/span> <span class=\"cm-variable\">x<\/span>.<span class=\"cm-variable\">beat<\/span>).<span class=\"cm-variable\">ToList<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u5b8c\u6210\u6240\u6709\u8b8a\u901f\u548c\u8b8a\u62cd\u7684\u4fe1\u606f\u8b80\u53d6\u5f8c\uff0c\u5c31\u53ef\u4ee5\u5f97\u5230note\u5be6\u969b\u5230\u9054\u548c\u96e2\u958b\u5224\u5b9a\u7dda\u7684\u6642\u9593<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span> (<span class=\"cm-variable\">NoteProperty<\/span> <span class=\"cm-variable\">note<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">noteProperties<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">secBegin<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">BeatMap<\/span>.<span class=\"cm-variable\">BeatToSecWithVarTempo<\/span>(<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">beatBegin<\/span>, <span class=\"cm-variable\">tempoChanges<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">secEnd<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">BeatMap<\/span>.<span class=\"cm-variable\">BeatToSecWithVarTempo<\/span>(<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">beatEnd<\/span>, <span class=\"cm-variable\">tempoChanges<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">PlayerController<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5224\u5b9a\u662f\u5c0d\u300c\u8a72\u8ecc\u9053\u4e0a\u5c1a\u6c92\u9032\u884c\u5224\u5b9a\u5f8c\u8655\u7406\u7684\u6700\u63a5\u8fd1\u5224\u5b9a\u7dda\u7684\u4e00\u500bNote\u300d\u7684\u8655\u7406\u3002<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u53ef\u4ee5\u901a\u904e\u4e00\u500b\u5217\u8868\u4f86<span style=\"color: #ff0000;\">\u4fdd\u5b58\u5834\u666f\u4e2d\u6240\u6709\u6c92\u9032\u884c\u5224\u5b9a\u5f8c\u8655\u7406\u7684note\uff0c\u9032\u884c\u5224\u5b9a\u5f8c\u5c07\u5176\u5f9e\u5217\u8868\u4e2d\u79fb\u9664\u3002<\/span><\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">\/\/PlayerController<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\u5c1a\u672a\u9032\u884c\u5224\u5b9a\u8655\u7406\u7684Note\u5217\u8868<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">List<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-variable\">existingNotesList<\/span>;<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Awake<\/span>()<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u672a\u5224\u5b9aNotes\u521d\u59cb\u5316<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">existingNotesList<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">List<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/Spawning Notes<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span> (<span class=\"cm-variable\">NoteProperty<\/span> <span class=\"cm-variable\">noteProperty<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">beatMap<\/span>.<span class=\"cm-variable\">noteDatas<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6700\u958b\u59cb\u7684\u6642\u5019\u6240\u6709note\u90fd\u9084\u6c92\u88ab\u6d88\u9664\uff0c\u628a\u6240\u6709Notes\u52a0\u5230\u672a\u6d88\u9664note\u5217\u8868\u4e2d<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Add<\/span>(<span class=\"cm-variable\">objNote<\/span>.<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">NoteControllerBase<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u7a0d\u5f8c\u5c07\u6703\u5275\u5efa\u4e00\u500bJudgementManager\uff08\u5224\u5b9a\u7ba1\u7406\u5668\uff09\uff0c\u8a72\u7ba1\u7406\u5668\u6703\u8abf\u7528Note\u7684<span style=\"color: #ff0000;\">OnKeyDown\u65b9\u6cd5\uff08\u6839\u64da\u5224\u65b7\u7d50\u679c\u57f7\u884c\u76f8\u61c9\u7684\u5f8c\u8655\u7406\uff09<\/span>\uff0c\u800c\u5177\u9ad4\u54ea\u7a2eNote\u600e\u9ebc\u8655\u7406\uff0c\u5247\u7531\u5c0d\u61c9\u7684Note\u81ea\u5df1\u8655\u7406\u3002JudgementManager\u53ea\u8ca0\u8cac\u89f8\u767c\u8a72\u65b9\u6cd5\u3002<\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">using<\/span> <span class=\"cm-variable\">UnityEngine<\/span>;<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">abstract<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">NoteControllerBase<\/span> : <span class=\"cm-variable\">MonoBehaviour<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable\">NoteProperty<\/span> <span class=\"cm-variable\">noteProperty<\/span>;<\/span><br \/><span role=\"presentation\">    <span class=\"cm-comment\">\/\/Note\u5224\u5b9a\u5f8c\u8655\u7406<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">virtual<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>) { }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">SingleNoteController<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u91cd\u8f09OnKeyDown\u65b9\u6cd5\uff0c\u57f7\u884cSingle Note\u7684\u5224\u5b9a\u5f8c\u8655\u7406\u3002\u4e3b\u8981\u662f<span style=\"color: #ff0000;\">\u5728Notes\u88ab\u6483\u4e2d\u5f8c\u6216\u8005\u4e0b\u843d\u81f3\u4f4e\u65bc\u5224\u5b9a\u7dda\u4e14\u96e2\u958b\u6700\u5f8c\u7684\u53ef\u5224\u5b9a\u7bc4\u570d\u5f8c\uff0c\u628a\u81ea\u5df1\u7684\u7269\u9ad4\u4ee5\u53ca\u5f9ePlayerController\u4e2d\u7684\u300c\u672a\u6d88\u9664Notes\u5217\u8868\u300d\u88e1\u79fb\u9664<\/span><\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">SingleNoteController<\/span> : <span class=\"cm-variable\">NoteControllerBase<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">UpdatePosition<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">CheckMiss<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">CheckMiss<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u8a72SingleNote\u7684\u9032\u5165\u5224\u5b9a\u7dda\u6642\u9593\u5c0f\u65bc\u7576\u524d\u66f2\u76ee\u64ad\u653e\u6642\u9593\u7684\u5e45\u5ea6\u8d85\u904e\u4e86\u58de\u8a55\u50f9\u7684\u7bc4\u570d\uff0cMiss \u00a0 \u00a0 \u00a0 \u00a0 <\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u540c\u6642\u8a72\u5224\u65b7\u78ba\u4fdd\u4e86\u53ea\u6709\u5728\u5224\u5b9a\u7dda\u4ee5\u4e0b\u7684note\u624d\u6703\u88ab\u8996\u70bamiss<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u76ee\u524d\u5982\u679c\u73a9\u5bb6\u5728Note\u9084\u6709\u5f88\u4e45\u5728\u4e0b\u843d\u5230\u773c\u524d\u6642\u9032\u884c\u6309\u9375\u8f38\u5165\uff0cJudgementManager\u4ecd\u7136\u6703\u8fd4\u56deMiss<\/span><\/span><br \/><span role=\"presentation\"><span style=\"color: #ff0000;\"> \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"cm-comment\"><span style=\"color: #ff0000;\">\/\/\u4f46\u662f\u7531\u65bc\u5728OnKeyDown\u4e2d\u4e0d\u8655\u7406Miss\u7684Note\uff0c\u56e0\u6b64\u90a3\u4e9bNote\u624d\u4e0d\u6703\u88ab\u92b7\u6bc0 \u00a0<\/span> <\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span style=\"color: #ff0000;\"><span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secBegin<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span> <\/span><\/span><br \/><span role=\"presentation\"><span style=\"color: #ff0000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-operator\">&lt;<\/span> <span class=\"cm-operator\">-<\/span><span class=\"cm-variable\">JudgementManager<\/span>.<span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>]<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6d88\u9664Miss\u4e86\u7684Note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Remove<\/span>(<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Destroy<\/span>(<span class=\"cm-variable\">gameObject<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">UpdatePosition<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u8a72Note\u88ab\u6483\u4e2d\u4e26\u6d88\u9664<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">override<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Debug<\/span>.<span class=\"cm-variable\">Log<\/span>(<span class=\"cm-variable\">judgementType<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/Bad\u7bc4\u570d\u4ee5\u5167\u88ab\u6483\u4e2d\u7684Note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span style=\"color: #ff0000;\"><span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">judgementType<\/span> <span class=\"cm-operator\">!=<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">MISS<\/span>)<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Remove<\/span>(<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Destroy<\/span>(<span class=\"cm-variable\">gameObject<\/span>);<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">JudgementManager<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">JudgementManager\u7528\u4f86\u9032\u884cNote\u7684\u5224\u5b9a\u3002\u901a\u904e<span style=\"color: #ff0000;\">\u5f97\u5230\u8f38\u5165\u7684\u8ecc\u9053\u4e0a\u6700\u63a5\u8fd1\u5224\u5b9a\u7dda\u7684\u4e00\u500bnote\uff0c\u8abf\u7528\u5176\u5224\u65b7\u5f8c\u8655\u7406\u65b9\u6cd5\uff08OnKeyDown\uff09<\/span>\u3002JudgementManager\u9700\u8981\u6dfb\u52a0\u5230\u904a\u6232\u5834\u666f\u4e2d\u3002<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">JudgementManager\u4e3b\u8981\u7531\u4ee5\u4e0b\u5e7e\u500b\u90e8\u5206\u7d44\u6210<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5b9a\u7fa9\u8a55\u50f9\u985e\u578b\u548c\u8a55\u50f9\u7684\u5224\u5b9a\u7bc4\u570d<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/ \u5224\u5b9a\u8a55\u50f9<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<br \/><\/span><\/span><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">enum<\/span> <span class=\"cm-variable\">JudgementType<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">MISS<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">PERFECT<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">GOOD<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">BAD<\/span><\/span><br \/><span role=\"presentation\">}<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">JudgementManager<\/span> : <span class=\"cm-variable\">MonoBehaviour<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5404\u8a55\u50f9\u5224\u5b9a\u7d55\u5c0d\u503c\u7bc4\u570d<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">Dictionary<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">JudgementType<\/span>, <span class=\"cm-variable-3\">float<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-variable\">judgementWidth<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">Dictionary<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">JudgementType<\/span>, <span class=\"cm-variable-3\">float<\/span><span class=\"cm-operator\">&gt;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  { <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">PERFECT<\/span>, <span class=\"cm-number\">0.05f<\/span> },<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  { <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">GOOD<\/span>, <span class=\"cm-number\">0.20f<\/span> },<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  { <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>, <span class=\"cm-number\">0.30f<\/span> },<\/span><br \/><span role=\"presentation\"> \u00a0  };<\/span><br \/><span role=\"presentation\">    <span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u904d\u6b77\u6240\u6709\u8ecc\u9053\u548c\u6aa2\u6e2c\u73a9\u5bb6\u8f38\u5165\uff0c<span style=\"color: #ff0000;\">\u6839\u64da\u73a9\u5bb6\u8f38\u5165\u5f97\u5230\u5c0d\u61c9\u8ecc\u9053\u4e0a\u7684\u6700\u63a5\u8fd1note\u4e14\u9032\u884c\u5224\u5b9a\u548c\u5f8c\u8655\u7406<\/span><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">JudgementManager<\/span> : <span class=\"cm-variable\">MonoBehaviour<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u73a9\u5bb6\u8f38\u5165\u8a2d\u7f6e<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">KeyCode<\/span>[] <span class=\"cm-variable\">InputSettings<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">KeyCode<\/span>[]<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">D<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">F<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">Space<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">J<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">K<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0  };<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6bcf\u5e40\u904d\u6b77\u6240\u6709\u8ecc\u9053<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">for<\/span> (<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">0<\/span>; <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">&lt;<\/span> <span class=\"cm-variable\">InputSettings<\/span>.<span class=\"cm-variable\">Length<\/span>; <span class=\"cm-variable\">lane<\/span><span class=\"cm-operator\">++<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u73a9\u5bb6\u7576\u524d\u8f38\u5165\u7684\u9375<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span> <span class=\"cm-variable\">playerInput<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">InputSettings<\/span>[<span class=\"cm-variable\">lane<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u67d0\u8ecc\u9053\u5c0d\u61c9\u7684\u9375\u6709\u8f38\u5165\u6642<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">Input<\/span>.<span class=\"cm-variable\">GetKeyDown<\/span>(<span class=\"cm-variable\">playerInput<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u5617\u8a66\u5f97\u5230\u73a9\u5bb6\u8f38\u5165\u5c0d\u61c9\u8ecc\u9053\u4e0a\u7684\u6700\u63a5\u8fd1\u5224\u5b9a\u7dda\u7684note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-variable\">nearestNote<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">GetNearestNote<\/span>(<span class=\"cm-variable\">lane<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">nearestNote<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-keyword\">continue<\/span>; }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u51fa\u9019\u500b\u7576\u524d\u6642\u9593\u8207\u8a72note\u9032\u5165\u5224\u5b9a\u7dda\u7684\u6642\u9593\u5dee<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">nearestNote<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secBegin<\/span>;<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u9019\u500b\u6642\u9593\u5dee\u7684\u8a55\u50f9\u4e26\u8b93\u8a72note\u9032\u884c\u5224\u5b9a\u5f8c\u8655\u7406<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">nearestNote<\/span>.<span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">GetJudgement<\/span>(<span class=\"cm-variable\">diffSec<\/span>));<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><\/pre><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5f97\u5230\u8ecc\u9053\u4e0a\u6700\u63a5\u8fd1\u7684note<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/ \u5f97\u5230lane\u8ecc\u9053\u4e0a\uff0c\u8207\u5224\u5b9a\u7dda\u6700\u5feb\u63a5\u89f8\u7684note<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<br \/><\/span><\/span><span role=\"presentation\"><span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-def\">GetNearestNote<\/span>(<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span>)<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u5728\u300c\u672a\u6d88\u9664note\u5217\u8868\u300d\u4e2d\u5f97\u5230\u8a72\u8ecc\u9053\u4e0a\u7684\u6240\u6709note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span style=\"color: #ff0000;\"><span class=\"cm-keyword\">var<\/span> <span class=\"cm-def\">nearNotes<\/span> <span class=\"cm-operator\">=<\/span><\/span><\/span><br \/><span role=\"presentation\"><span style=\"color: #ff0000;\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<\/span><span class=\"cm-variable\" style=\"color: #ff0000;\">existingNotesList<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">Where<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-variable\">lane<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5982\u679c\u8a72\u8ecc\u9053\u4e0a\u5b58\u5728\u9019\u4e9bnote\u7684\u6642\u5019<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">nearNotes<\/span>.<span class=\"cm-variable\">Any<\/span>())<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u627e\u51fa\u9019\u4e9bnote\u4e2d\u6700\u5feb\u63a5\u89f8\u5224\u5b9a\u7dda\u7684\u7b2c\u4e00\u500bnote\u4e26\u8fd4\u56de<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">nearNotes<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">OrderBy<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">beatBegin<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentBeat<\/span>))<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">First<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-atom\">null<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u8a55\u50f9\u5224\u65b7<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/ \u8a55\u50f9\u5224\u65b7<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span> <br \/><span role=\"presentation\"><span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-def\">GetJudgement<\/span>(<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">diffSec<\/span>)<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">PERFECT<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">PERFECT<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> <span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">GOOD<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">GOOD<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> <span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>; }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">MISS<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u7e3d\u9ad4\u4ee3\u78bc<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">JudgementManager<\/span> : <span class=\"cm-variable\">MonoBehaviour<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u73a9\u5bb6\u8f38\u5165\u8a2d\u7f6e<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">KeyCode<\/span>[] <span class=\"cm-variable\">InputSettings<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">KeyCode<\/span>[]<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">D<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">F<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">Space<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">J<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span>.<span class=\"cm-variable\">K<\/span>,<\/span><br \/><span role=\"presentation\"> \u00a0  };<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6bcf\u5e40\u904d\u6b77\u6240\u6709\u8ecc\u9053<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">for<\/span> (<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">0<\/span>; <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">&lt;<\/span> <span class=\"cm-variable\">InputSettings<\/span>.<span class=\"cm-variable\">Length<\/span>; <span class=\"cm-variable\">lane<\/span><span class=\"cm-operator\">++<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u73a9\u5bb6\u7576\u524d\u8f38\u5165\u7684\u9375<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">KeyCode<\/span> <span class=\"cm-variable\">playerInput<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">InputSettings<\/span>[<span class=\"cm-variable\">lane<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u67d0\u8ecc\u9053\u5c0d\u61c9\u7684\u9375\u6709\u8f38\u5165\u6642<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">Input<\/span>.<span class=\"cm-variable\">GetKeyDown<\/span>(<span class=\"cm-variable\">playerInput<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5617\u8a66\u5f97\u5230\u73a9\u5bb6\u8f38\u5165\u5c0d\u61c9\u8ecc\u9053\u4e0a\u7684\u6700\u63a5\u8fd1\u5224\u5b9a\u7dda\u7684note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-variable\">nearestNote<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">GetNearestNote<\/span>(<span class=\"cm-variable\">lane<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">nearestNote<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-keyword\">continue<\/span>; }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u51fa\u9019\u500b\u7576\u524d\u6642\u9593\u8207\u8a72note\u9032\u5165\u5224\u5b9a\u7dda\u7684\u6642\u9593\u5dee<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">nearestNote<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secBegin<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u9019\u500b\u6642\u9593\u5dee\u7684\u8a55\u50f9\u4e26\u8b93\u8a72note\u9032\u884c\u5224\u5b9a\u5f8c\u8655\u7406<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">nearestNote<\/span>.<span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">GetJudgement<\/span>(<span class=\"cm-variable\">diffSec<\/span>));<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/ \u5f97\u5230lane\u8ecc\u9053\u4e0a\uff0c\u8207\u5224\u5b9a\u7dda\u6700\u5feb\u63a5\u89f8\u7684note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/<br \/><\/span><\/span><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-variable\">GetNearestNote<\/span>(<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 <span style=\"color: #ff0000;\">\u00a0<span class=\"cm-comment\">\/\/\u5728\u300c\u672a\u6d88\u9664note\u5217\u8868\u300d\u4e2d\u5f97\u5230\u8a72\u8ecc\u9053\u4e0a\u7684\u6240\u6709note<\/span><\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">var<\/span> <span class=\"cm-def\">nearNotes<\/span> <span class=\"cm-operator\">=<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">Where<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-variable\">lane<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5982\u679c\u8a72\u8ecc\u9053\u4e0a\u5b58\u5728\u9019\u4e9bnote\u7684\u6642\u5019<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">nearNotes<\/span>.<span class=\"cm-variable\">Any<\/span>())<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u627e\u51fa\u9019\u4e9bnote\u4e2d\u6700\u5feb\u63a5\u89f8\u5224\u5b9a\u7dda\u7684\u7b2c\u4e00\u500bnote\u4e26\u8fd4\u56de<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">nearNotes<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">OrderBy<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">beatBegin<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentBeat<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">First<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-atom\">null<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/ \u8a55\u50f9\u5224\u65b7<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\/<br \/><\/span><\/span><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">GetJudgement<\/span>(<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">diffSec<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">PERFECT<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">PERFECT<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> <span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">GOOD<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">GOOD<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> <span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>]) { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>; }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> { <span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">MISS<\/span>; } \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\" style=\"color: #ff0000;\">\u8981\u6ce8\u610f\u7684\u662f\uff0c\u73a9\u5bb6\u5728Note\u9084\u6709\u5f88\u4e45\u5728\u4e0b\u843d\u5230\u773c\u524d\u6642\u9032\u884c\u6309\u9375\u8f38\u5165\uff0cJudgementManager\u4ecd\u7136\u6703\u8fd4\u56deMiss\uff0c\u4f46\u662f\u7531\u65bc\u5728OnKeyDown\u4e2d\u4e0d\u8655\u7406Miss\u7684Note\uff0c\u56e0\u6b64\u90a3\u4e9bNote\u624d\u4e0d\u6703\u88ab\u92b7\u6bc0 \uff1b\u800cMiss Note\u53ea\u6709\u5728\u4f4e\u65bc\u5224\u5b9a\u7dda\u7684Bad\u5224\u5b9a\u7bc4\u570d\u6642\u9593\u5f8c\uff0c\u624d\u6703\u92b7\u6bc0\u81ea\u5df1<\/span><\/p><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c57633d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c57633d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4f555cc\" data-id=\"4f555cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8833660 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8833660\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-398a0ff elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"398a0ff\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e2b960a\" data-id=\"e2b960a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6022c3c elementor-widget elementor-widget-text-editor\" data-id=\"6022c3c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4 class=\"md-end-block md-heading\"><span style=\"text-decoration: underline;\"><strong><span class=\"md-plain\">Long Note\u5224\u5b9a<\/span><\/strong><\/span><\/h4><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5c0d\u65bcLong Note\uff0c\u4e0d\u540c\u904a\u6232\u6709\u4e0d\u540c\u7684\u5224\u5b9a\u65b9\u5f0f\uff1a<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u8d77\u9ede<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5fc5\u9808\u5148\u8d77\u624b\uff0c\u4e4b\u5f8c\u5728\u8d77\u9ede\u5230\u9054\u5224\u5b9a\u7dda\u7684\u6642\u5019\u518d\u6309<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u53ea\u8981\u8d77\u9ede\u4e0b\u843d\u4e4b\u524d\u6709\u6309\u4f4f\u5c31\u884c<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u8d77\u9edeMiss<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u6574\u9ad4Long Note\u4e0d\u518d\u505a\u5224\u5b9a<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u9577\u62bc\u7684\u5269\u9918\u90e8\u5206\u4f9d\u7136\u6703\u505a\u5224\u5b9a<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u9577\u62bc\u4e2dMiss<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u6574\u9ad4Long Note\u4e0d\u518d\u505a\u5224\u5b9a<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u9577\u62bc\u7684\u5269\u9918\u90e8\u5206\u4f9d\u7136\u6703\u505a\u5224\u5b9a<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u7d42\u9ede<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u6709\u5c3e\u62bc\uff0c\u8981\u5728\u9577\u62bc\u5b8c\u7d50\u7684\u4e00\u77ac\u62ac\u624b<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u7121\u5c3e\u62bc\uff0c\u9577\u62bc\u5b8c\u7d50\u6642\u4e0d\u7528\u62ac\u624b<\/span><\/p><\/li><\/ul><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5728\u672c\u6848\u4f8b\u4e2d\uff0c\u6703\u63a1\u7528\uff1a<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8d77\u9ede\uff1a\u5fc5\u9808\u5148\u8d77\u624b\u518d\u6309<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8d77\u9edeMiss\uff1a\u6574\u9ad4Long Note\u4e0d\u518d\u505a\u5224\u5b9a<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u9577\u62bc\u4e2dMiss\uff1a\u6574\u9ad4Long Note\u4e0d\u518d\u505a\u5224\u5b9a<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u7d42\u9ede\uff1a\u6709\u5c3e\u62bc\uff0c\u5fc5\u9808\u53ca\u6642\u62ac\u624b<\/span><\/p><\/li><\/ul><\/li><\/ul><ul><li style=\"list-style-type: none;\"><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5728LongNoteController\u4e2d\uff0c\u9664\u4e86OnKeyDown\u65b9\u6cd5\u4ee5\u5916\uff0c\u9084\u9700\u8981<span style=\"color: #ff0000;\">OnKeyUp\u65b9\u6cd5\u4f86\u5224\u65b7Long Note\u7684\u904e\u7a0b<\/span>\u3002\u800c\u4e14\u9700\u8981\u4e00\u500b\u5b57\u6bb5<span style=\"color: #ff0000;\">isProcessed\u4f86\u4f5c\u70ba\u300cLongNote\u6b63\u5728\u88ab\u8655\u7406\u9014\u4e2d\u300d\u7684\u8868\u793a<\/span>\u3002\u5728\u8d77\u9ede\u5224\u5b9a\u6210\u529f\u6642\u8fd4\u56detrue\uff1b\u7d42\u9ede\u5224\u5b9a\u6210\u529f\u6642\u8fd4\u56defalse\u3002<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u9577\u62bc\u5177\u9ad4\u5224\u5b9a\u6d41\u7a0b\uff1a<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5224\u5b9a\u958b\u59cb\u90e8\u5206<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u6aa2\u6e2c\u9375\u7684\u6309\u4e0b<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5f97\u5230\u6309\u4e0b\u7684\u9375\u5c0d\u61c9\u8ecc\u9053\u4e0a\u6700\u63a5\u8fd1\u5224\u5b9a\u7dda\u7684Long Note<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8a08\u7b97\u8d77\u9ede\u7684\u5224\u5b9a\u7d50\u679c<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8abf\u7528Long Note\u7684OnKeyDown\u65b9\u6cd5<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5982\u679c\u5224\u5b9a\u6210\u529f\uff08\u975eMiss\uff09\uff0c\u5728Notes\u65b9\u9762\u628aisProcessed\u8a2d\u70batrue<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5224\u5b9a\u7d50\u675f\u90e8\u5206<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u6aa2\u6e2c\u9375\u7684\u62ac\u8d77<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5f97\u5230\u62ac\u8d77\u7684\u9375\u5c0d\u61c9\u8ecc\u9053\u4e0a\uff0cisProcessed\u70batrue\u7684Long Note<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8a08\u7b97\u7d42\u9ede\u7684\u5224\u5b9a\u7d50\u679c<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8abf\u7528Long Note\u7684OnKeyUp\u65b9\u6cd5<\/span><\/p><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u5982\u679c\u5224\u5b9a\u6210\u529f\uff08\u975eMiss\uff09\uff0c\u5728Notes\u65b9\u9762\u628aisProcessed\u8a2d\u70bafalse\uff0c\u522a\u9664Note<\/span><\/p><\/li><\/ul><\/li><li>\u793a\u610f\u5716\uff1a<\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-359b6c6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"359b6c6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d037099\" data-id=\"d037099\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-979eaf7 elementor-widget elementor-widget-image\" data-id=\"979eaf7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"564\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_31-768x564.png\" class=\"attachment-medium_large size-medium_large wp-image-1863\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_31-768x564.png 768w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_31-300x220.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_31.png 958w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1e4cef0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1e4cef0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c30111c\" data-id=\"c30111c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a8ef7e6 elementor-widget elementor-widget-text-editor\" data-id=\"a8ef7e6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain md-expand\">\u5be6\u73feLong Note\u7684\u5224\u5b9a\u529f\u80fd\uff0c\u9700\u8981\u5c0d\u4ee5\u4e0b3\u500b\u8173\u672c\u9032\u884c\u4e00\u4e9b\u4fee\u6539<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">NoteControllerBase<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u589e\u52a0<span style=\"color: #ff0000;\">\u5b57\u6bb5isProcessed\uff08\u8868\u793aLong Note\u7576\u524d\u7684\u8655\u7406\u60c5\u6cc1\uff09<\/span>\u4ee5\u53ca<span style=\"color: #ff0000;\">OnKeyUp\u65b9\u6cd5<\/span><\/span><\/p><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">abstract<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">NoteControllerBase<\/span> : <span class=\"cm-variable\">MonoBehaviour<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable\">NoteProperty<\/span> <span class=\"cm-variable\">noteProperty<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">bool<\/span> <span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">false<\/span>; <span class=\"cm-comment\">\/\/LongNote\u6b63\u5728\u8655\u7406\u4e2d\u7684\u6a19\u5fd7<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6309\u9375\u6309\u4e0b\u7684\u8655\u7406<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">virtual<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>) { }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6309\u9375\u62ac\u8d77\u7684\u8655\u7406<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">virtual<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyUp<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>) { }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">LongNoteController<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u8986\u5beb\u4e86OnKeyDown\u548cOnKeyUp\u65b9\u6cd5\u4f86\u9032\u884c\u5224\u5b9a\u8655\u7406\u3002\u5728<span style=\"color: #ff0000;\">\u6309\u9375\u6309\u4e0b\u6642\uff08OnKeyDown\uff09\uff0c\u53ea\u6709\u5224\u5b9a\u7d50\u679c\u5728Bad\u4ee5\u5167\u6642\u6703\u5c07isProcessed\u8a2d\u70batrue\uff1b\u800c\u5728\u6309\u9375\u62ac\u8d77\u6642\uff0cOnKeyUp\u7121\u8ad6\u5224\u5b9a\u7d50\u679c\u5982\u4f55\uff0c\u90fd\u6703\u628aisProcessed\u8a2d\u70bafalse\uff0c\u628a\u81ea\u5df1\u5f9e\u751f\u5b58notes\u5217\u8868\u4e2d\u79fb\u9664\uff0c\u522a\u9664\u81ea\u8eab\u3002<\/span><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u9664\u6b64\u4ee5\u5916\uff0cOnKeyUp\u9084\u63cf\u8ff0\u4e86\u8d77\u9edeMiss\u6642\u7684\u8655\u7406\uff0c\u4ee5\u53ca\u7d42\u9ede\u7d93\u904e\u5f8c\u4f9d\u7136\u6309\u4f4f\u6309\u9375\u7684\u8655\u7406\u3002<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">LongNoteController<\/span> : <span class=\"cm-variable\">NoteControllerBase<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">UpdatePosition<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">CheckMiss<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">UpdatePosition<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">CheckMiss<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u6c92\u6709\u9032\u5165\u8655\u7406\u72c0\u614b\u7684\u8d77\u9ede\u901a\u904e\u5224\u5b9a\u7dda\u4e14\u8d85\u904e\u4e86BAD\u5224\u5b9a\u7bc4\u570d\uff08\u65b7\u982d\u62bc\uff09<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u79fb\u9664\u8a72\u7269\u9ad4<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-operator\">!<\/span><span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">&amp;&amp;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secBegin<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span> <span class=\"cm-operator\">&lt;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #ff0000;\"><span class=\"cm-operator\">-<\/span><span class=\"cm-variable\">JudgementManager<\/span>.<span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>]<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Remove<\/span>(<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Destroy<\/span>(<span class=\"cm-variable\">gameObject<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u9032\u5165\u4e86\u8655\u7406\u72c0\u614b\u7684\u7d42\u9ede\u901a\u904e\u4e86\u5224\u5b9a\u7dda\u4e14\u8d85\u904e\u4e86BAD\u5224\u5b9a\u7bc4\u570d\uff08Hold\u592a\u4e45\u65b7\u5c3e\u62bc\uff09<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u79fb\u9664\u8a72\u7269\u9ad4<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">&amp;&amp;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secEnd<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span> <span class=\"cm-operator\">&lt;<\/span> <\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #ff0000;\"><span class=\"cm-operator\">-<\/span><span class=\"cm-variable\">JudgementManager<\/span>.<span class=\"cm-variable\">judgementWidth<\/span>[<span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">BAD<\/span>]<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span style=\"color: #ff0000;\"><span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">false<\/span>; <span class=\"cm-comment\">\/\/\u91cd\u7f6e\u9577\u62bc\u6a19\u5fd7\u4f4d<\/span><\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Remove<\/span>(<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Destroy<\/span>(<span class=\"cm-variable\">gameObject<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">override<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Debug<\/span>.<span class=\"cm-variable\">Log<\/span>(<span class=\"cm-variable\">judgementType<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6309\u4e0b\u6642\uff0cLongNote\u5728BAD\u5224\u5b9a\u7bc4\u570d\u5167<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">judgementType<\/span> <span class=\"cm-operator\">!=<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">MISS<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u958b\u59cbLong Note Holding<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">true<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u62ac\u624b<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">override<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyUp<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 <span style=\"color: #ff0000;\">\u00a0<span class=\"cm-comment\">\/\/\u7531\u65bcLongNote\u7684\u5c3e\u5224\u53ea\u6709\u5728\u300cisProcessed = true\u300d\uff08\u982d\u5224\u5224\u5b9a\u6210\u529f\u5f8c\uff09\u624d\u80fd\u88ab\u6355\u6349\u5230<\/span><\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u56e0\u6b64\u9019\u88e1\u96d6\u7136\u6c92\u6709\u975eMiss\u5224\u5b9a\uff0c\u4f46\u662f\u5728\u6c92\u6709\u6309\u4f4fLongNote\u7684\u6642\u5019\u62ac\u624b\u4e5f\u4e0d\u6703\u89f8\u767c\u5230LongNote\u7684OnKeyUp\u65b9\u6cd5<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Debug<\/span>.<span class=\"cm-variable\">Log<\/span>(<span class=\"cm-variable\">judgementType<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u7d50\u675fHolding\uff0c\u91cd\u7f6e\u6a19\u5fd7\u4f4d<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">false<\/span>;<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u79fb\u9664\u8a72\u7269\u9ad4<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span>.<span class=\"cm-variable\">Remove<\/span>(<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">NoteControllerBase<\/span><span class=\"cm-operator\">&gt;<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Destroy<\/span>(<span class=\"cm-variable\">gameObject<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\" style=\"color: #ff0000;\">\u8981\u6ce8\u610f\u7684\u662f\uff0c\u96d6\u7136\u9019\u88e1OnKeyUp\u6c92\u6709\u9032\u884c\u975eMiss\u5224\u65b7\uff0c\u5bb9\u6613\u8aa4\u4ee5\u70ba\u5982\u679c\u73a9\u5bb6\u4e00\u958b\u59cb\u5c31\u9032\u884cOnKeyUp\u52d5\u4f5c\uff0c\u6703\u4f7f\u6c92\u6709\u5230\u9054\u5224\u5b9a\u7dda\u7684LongNote\u88ab\u8aa4\u522a\u3002\u4f46\u5be6\u969b\u4e0a\uff0c\u88ab\u8abf\u7528OnKeyUp\u65b9\u6cd5\u7684note\u53ea\u6709\u5728\u5176\u5728\u300cisProcessed\u300d\u72c0\u614b\u4e0b\u624d\u80fd\u88ab\u6355\u6349\u5230\uff0c\u800c\u5982\u679cisProcessed\u70batrue\uff0c\u5247\u4ee3\u8868\u8a72LongNote\u5df2\u7d93\u88ab\u6309\u4f4f\uff0c\u800c\u6309\u4f4f\u6642\u63d0\u65e9\u9b06\u958b\u81ea\u7136\u6703Miss\u6389<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">JudgementManager<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u589e\u52a0\u9b06\u958b\u6309\u9375\u7684\u63cf\u8ff0\uff0c\u7576\u6309\u9375\u9b06\u958b\u6642\uff0c\u8abf\u7528\u8a72\u6309\u9375\u5c0d\u61c9\u8ecc\u9053\u4e0a\u300c\u8655\u7406\u4e2d\u300d\uff08isProcessed\uff09\u7684note\u4e2d\u7684OnKeyUp\u65b9\u6cd5\u3002<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6bcf\u5e40\u904d\u6b77\u6240\u6709\u8ecc\u9053<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">for<\/span> (<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">0<\/span>; <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">&lt;<\/span> <span class=\"cm-variable\">InputSettings<\/span>.<span class=\"cm-variable\">Length<\/span>; <span class=\"cm-variable\">lane<\/span><span class=\"cm-operator\">++<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u67d0\u8ecc\u9053\u5c0d\u61c9\u7684\u9375\u6709\u8f38\u5165\u6642<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">Input<\/span>.<span class=\"cm-variable\">GetKeyDown<\/span>(<span class=\"cm-variable\">playerInput<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u67d0\u8ecc\u9053\u5c0d\u61c9\u7684\u9375\u88ab\u9b06\u958b<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span> <span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">Input<\/span>.<span class=\"cm-variable\">GetKeyUp<\/span>(<span class=\"cm-variable\">playerInput<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\" style=\"color: #ff0000;\">\/\/\u5f97\u5230\u5c0d\u61c9\u8ecc\u9053\u4e0a\u6700\u8fd1\u7684\u4e00\u500b\u9577\u62bc\u5c3eNote<\/span><\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-variable\">processedNote<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">GetProcessedNoteControllerBaseInLane<\/span>(<span class=\"cm-variable\">lane<\/span>);<\/span><br \/><span style=\"color: #ff0000;\" role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">processedNote<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-keyword\">continue<\/span>; }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u9019\u500b\u5c3e\u62bc\u9032\u5165\u5224\u5b9a\u7dda\u8207\u7576\u524d\u6642\u9593\u4e4b\u9593\u7684\u5dee<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">processedNote<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">secEnd<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">float<\/span> <span class=\"cm-variable\">diffSec<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">noteSec<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentSec<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5f97\u5230\u9019\u500b\u6642\u9593\u5dee\u7684\u8a55\u50f9\u4e26\u8b93\u5176\u9032\u884c\u5224\u5b9a\u5f8c\u8655\u7406<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">processedNote<\/span>.<span class=\"cm-variable\">OnKeyUp<\/span>(<span class=\"cm-variable\">GetJudgement<\/span>(<span class=\"cm-variable\">diffSec<\/span>));<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5c0d\u65bc\u9019\u4e00\u9ede\uff0c\u6211\u5011<span style=\"color: #ff0000;\">\u9700\u8981\u5f97\u5230\u6309\u9375\u5c0d\u61c9\u7684\u8ecc\u9053\u4e0a\u300c\u8655\u7406\u4e2d\u300d\u7684NoteControllerBase<\/span>\uff0c\u56e0\u6b64\u9700\u8981\u6dfb\u52a0\u4e00\u500bGetProcessedNoteControllerBaseInLane\u65b9\u6cd5\u3002<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/ \u5f97\u5230lane\u8ecc\u9053\u4e0a\uff0c\u8207\u5224\u5b9a\u6700\u5feb\u63a5\u89f8\u4e14\u6b63\u5728\u8655\u7406\u4e2d\u7684note\uff08Long Note\uff09<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">\/\/\/<\/span><\/span> <br \/><span role=\"presentation\"><span class=\"cm-variable\">NoteControllerBase<\/span> <span class=\"cm-def\">GetProcessedNoteControllerBaseInLane<\/span>(<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">lane<\/span>)<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/lane\u8ecc\u9053\u4e0a\u6b63\u5728\u8655\u7406\u4e2d\u7684note<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">var<\/span> <span class=\"cm-def\">processedNote<\/span> <span class=\"cm-operator\">=<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">existingNotesList<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">Where<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-variable\">lane<\/span> <span class=\"cm-operator\">&amp;&amp;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">isProcessed<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5982\u679c\u5b58\u5728\uff0c\u8fd4\u56de\u5b83\u5011\u7576\u4e2d\u7684\u7b2c\u4e00\u500b<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">processedNote<\/span>.<span class=\"cm-variable\">Any<\/span>())<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">processedNote<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">OrderBy<\/span>(<span class=\"cm-variable\">note<\/span> <span class=\"cm-operator\">=&gt;<\/span> <span class=\"cm-variable\">Mathf<\/span>.<span class=\"cm-variable\">Abs<\/span>(<span class=\"cm-variable\">note<\/span>.<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">beatBegin<\/span> <span class=\"cm-operator\">-<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentBeat<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  .<span class=\"cm-variable\">First<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-atom\">null<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><p class=\"md-end-block md-p md-focus\">\u00a0<\/p><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">Long Note Holding\u6642\u7684\u8996\u89ba\u8655\u7406<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u73fe\u5728\u9032\u5165\u8655\u7406\u72c0\u614b\u7684Long Note\u8207\u4e00\u822c\u7684Long Note\u6c92\u6709\u4efb\u4f55\u5340\u5225\uff0c\u5c0d\u73a9\u5bb6\u800c\u8a00\u975e\u5e38\u7684\u4e0dUser Friendly\uff0c\u56e0\u6b64\uff0c\u70ba\u4e86\u6a19\u793a\u51fa\u8655\u7406\u4e2dLong Note\u8207\u4e00\u822cLong Note\u7684\u5340\u5225\uff0c\u9700\u8981\u52a0\u4e00\u4e9b\u984d\u5916\u8655\u7406<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u6539\u8b8a\u8655\u7406\u4e2d\u7684Long Note\u984f\u8272<\/span><\/p><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">\u5982\u679cLong Note\u8d77\u9ede\u8655\u7406\u6210\u529f\uff0c\u56fa\u5b9a\u8d77\u9ede\u7684y\u5750\u6a19\uff0c\u793a\u610f\u5716\u5982\u4e0b\uff1a<\/span><\/p><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdad127 elementor-widget elementor-widget-image\" data-id=\"cdad127\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"573\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_32.png\" class=\"attachment-large size-large wp-image-1865\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_32.png 768w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/07\/Img_32-300x224.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-172101e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"172101e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-41dd992\" data-id=\"41dd992\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8174f6a elementor-widget elementor-widget-text-editor\" data-id=\"8174f6a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain md-expand\">\u5c0d\u65bc\u9019\u5169\u500b\u8b8a\u52d5\uff0c\u96d6\u7136\u5728LongNoteController\u4e2d\u9032\u884c\u4e00\u4e9b\u4fee\u6539<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u6dfb\u52a0\u984f\u8272\u8b8a\u91cf\u4e26\u5728\u6309\u4e0b\u9375\u6642\u6539\u8b8a\u984f\u8272<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\">[<span class=\"cm-variable\">SerializeField<\/span>] <span class=\"cm-variable\">Color32<\/span> <span class=\"cm-variable\">processedColorEdges<\/span>; <span class=\"cm-comment\">\/\/\u7aef\u9ede\u984f\u8272<\/span><\/span><br \/><span role=\"presentation\">[<span class=\"cm-variable\">SerializeField<\/span>] <span class=\"cm-variable\">Color32<\/span> <span class=\"cm-variable\">processedColorTrail<\/span>; <span class=\"cm-comment\">\/\/Trail\u984f\u8272<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">override<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">OnKeyDown<\/span>(<span class=\"cm-variable\">JudgementType<\/span> <span class=\"cm-variable\">judgementType<\/span>)<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">Debug<\/span>.<span class=\"cm-variable\">Log<\/span>(<span class=\"cm-variable\">judgementType<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6309\u4e0b\u6642\uff0cLongNote\u5728BAD\u5224\u5b9a\u7bc4\u570d\u5167<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">judgementType<\/span> <span class=\"cm-operator\">!=<\/span> <span class=\"cm-variable\">JudgementType<\/span>.<span class=\"cm-variable\">MISS<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u958b\u59cbLong Note Holding<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">isProcessed<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">true<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6539\u8b8a\u984f\u8272<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">begin<\/span>.<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">SpriteRenderer<\/span><span class=\"cm-operator\">&gt;<\/span>().<span class=\"cm-variable\">color<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">processedColorEdges<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">end<\/span>.<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">SpriteRenderer<\/span><span class=\"cm-operator\">&gt;<\/span>().<span class=\"cm-variable\">color<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">processedColorEdges<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">mid<\/span>.<span class=\"cm-variable\">GetComponent<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable\">SpriteRenderer<\/span><span class=\"cm-operator\">&gt;<\/span>().<span class=\"cm-variable\">color<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">processedColorTrail<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u56fa\u5b9a\u8d77\u9ede\u5224\u5b9a\u6210\u529f\u7684note\u7684\u8d77\u9edey\u5750\u6a19<\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">UpdatePosition<\/span>()<\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u9577\u62bc\u8d77\u9ede\u548c\u7d42\u9ede\u62cd\u5b50\u7684\u5750\u6a19\u8a2d\u7f6e<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">Vector2<\/span> <span class=\"cm-variable\">beginPos<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">Vector2<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-variable\">beginPos<\/span>.<span class=\"cm-variable\">x<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">laneXPos<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">isProcessed<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u56fa\u5b9a\u9032\u5165\u8655\u7406\u72c0\u614bLong Note y\u5750\u6a19<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">beginPos<\/span>.<span class=\"cm-variable\">y<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">begin<\/span>.<span class=\"cm-variable\">transform<\/span>.<span class=\"cm-variable\">position<\/span>.<span class=\"cm-variable\">y<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">else<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">beginPos<\/span>.<span class=\"cm-variable\">y<\/span> <span class=\"cm-operator\">=<\/span> (<span class=\"cm-variable\">noteProperty<\/span>.<span class=\"cm-variable\">beatBegin<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">currentBeat<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-operator\">*<\/span> <span class=\"cm-variable\">PlayerController<\/span>.<span class=\"cm-variable\">scrollSpeed<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/...<\/span><\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u66f8\u540d\uff1a\u300aUnity\u3067\u4f5c\u308b\u30ea\u30ba\u30e0\u30b2\u30fc\u30e0\u300b \u4f5c\u8005\uff1a\u9577\u5d0e\u5927\u5b66\u30de\u30eb\u30c1\u30e1\u30c7\u30a3\u30a2\u7814\u7a76\u4f1a<\/p>\n","protected":false},"author":1,"featured_media":947,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,18,23],"tags":[],"class_list":["post-1859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-reading-notes","category-developing","category-unity-rhythm-game"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/03\/FeatureCover_ReadingNotes.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/1859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=1859"}],"version-history":[{"count":14,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/1859\/revisions"}],"predecessor-version":[{"id":1878,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/1859\/revisions\/1878"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/947"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=1859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=1859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=1859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}