рдПрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдПрдХ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!


рдПрдХ рдФрд░ рд▓реЗрдЦ рдЖрдкрдХреЛ рдХрдЯ рдХреЗ рддрд╣рдд рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ 2 рдбреА рдЧреЗрдо рдХреЗ рд▓рд┐рдП рд▓реЗрд╡рд▓ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдирд╛рдордХ рд╣реИрдм рдкрд░ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦреБрдж рдХреЛ рдЧреЗрдо рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд▓рдХреНрд╖реНрдп рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред


рд▓реЗрдЦ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд╛рда (рдирд┐рдпрдорд┐рдд рдФрд░ рд╕реНрд░реЛрдд рджреЛрдиреЛрдВ) рдФрд░ рдХрдИ рдЪрд┐рддреНрд░ рд╣реИрдВред


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╢реБрд░реВ рдХрд░реВрдВ, рдЖрдЗрдП рдЖрдкрдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдирд╛рдо рдбреЗрдирд┐рд╕ рд╣реИред рдореИрдВ 7 рд╕рд╛рд▓ рдХреЗ рдХреБрд▓ рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдмрддрд╛рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдИрдЯреА рддрдХрдиреАрд╢рд┐рдпрди рд╣реИ, рдЬреЛ рдПрдХ рдмрд╛рд░ рд▓рдЧрди рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдореЙрдиреАрдЯрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдгреЛрдВ рдХреА рдлрд╝реНрд▓рд┐рдХрд░рд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд╕рдордп рдХреЗ рд╕рд╛рде, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдЬреНрдЮрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рд╕реА ++ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рд▓ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдореЗрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрд░рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗред


рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛: рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ? рдореЗрд░реЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╡рд╛рд▓ рдиреЗ рдореБрдЭреЗ рдмрдЪрдкрди рдореЗрдВ рджреВрд░ рддрдХ рдлреЗрдВрдХ рджрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН рдкреАрдПрд╕ 1, рдкреАрдПрд╕ 2, рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рд░реЗрд▓рд░реЛрдЬ рдЯрд╛рдЗрдХреВрди 3 рдХреЗ рд▓рд┐рдП рдмрд┐рддрд╛рдП рд╕реБрдЦрдж рдШрдВрдЯреЛрдВ рдореЗрдВ ... рдареАрдХ рд╣реИ, рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВред рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо!


рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ, рд╡рд┐рдХрд▓реНрдк рдпреВрдирд┐рдЯреА рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ (рдкрд╣рд┐рдпрд╛ рдХреЛ рд╕реБрджреГрдврд╝ рдирд╣реАрдВ рдХрд░рддреЗ?)ред рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдЦреЗрд▓ рдХреЛ рдкреНрд▓реЗ рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд░ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдЦрд┐рд░, рдкреНрд▓реЗ рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рд▓реАрдЬ рдХрд░рдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?


рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░ рджрд┐рдпрд╛ред рддрдм рдПрдХ рд╡рд┐рд░рд╛рдо рдерд╛ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдХрд╛рдо рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдЦрд┐рд░рдХрд╛рд░)ред


рд▓рдЧрднрдЧ рджреЛ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ 2 рдбреА рдЧреЗрдо ( https://habr.com/en/post/456152/ ) рдХреЗ рд▓рд┐рдП рд╕реНрддрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдирд╛рдордХ рдПрдХ рд╣рдм рдкрд░ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рджреЗрдЦрд╛ рдФрд░ рдЦреБрдж рд╕реЗ рд╕реЛрдЪрд╛ - рдХреНрдпреЛрдВ рдирд╣реАрдВ? рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛред рдореИрдВрдиреЗ рдХреГрдкрдпрд╛ OneNote рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЦреБрдж рдХреЛ рдХреЙрдкреА рдХрд┐рдпрд╛ рдФрд░ рдЯреИрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ (рдЬрд┐рд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдкреИрдЯрд░реНрди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред


рдореИрдВ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ? рдЖрдкрдХреА рдЖрд▓реЛрдЪрдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЦреБрдж рд╕реЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдпрджрд┐ рдЖрдк рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рддреИрд░рдирд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рд╕рд╛рде рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБред рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рд╣реИ - рддреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдХрдореЗрдВрдЯ рдореЗрдВ рд▓рд┐рдЦреЗрдВред рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдмреБрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛрдЧреБрдирд╛ рд▓рд┐рдЦреЗрдВред


рдореИрдВ рдПрдХ рдФрд░ platformer рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓рдВрдмреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред


рдЕрд╡рддрд╛рд░


рдПрдХ рдЦреЗрд▓ рдХреЗ рднреАрддрд░ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдХрд╛рдИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдмреНрд░рджрд░реНрд╕ (рдирд┐рдВрдЯреЗрдВрдбреЛ, 1985) рдореЗрдВ рдорд╛рд░рд┐рдпреЛ рдФрд░ рд▓реБрдЗрдЧреАред


рдХрдИ рдЙрдкрдХрдерд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирд╛рдпрдХ рдЬреАрд╡рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН:


тАв   ( ) тАв      тАв      тАв       тАв        

рдПрдиреАрдореЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХрд▓ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдорд▓реНрдЯреА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдпреВрдирд┐рдЯреА рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдвреВрдВрдвреЗрдВред рдлрд┐рд░, рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рд╕рд┐рдВрдЧрд▓ рд╕реЗ рдорд▓реНрдЯреАрдкрд▓ рдореЗрдВ SptiteMode рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рд╡реИрд▓реНрдпреВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред


рдЫрд╡рд┐


Apply рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ , рдлрд┐рд░ SpriteEditor ред


рд╕реНрдкреНрд░рд╛рдЗрдЯ рдПрдбрд┐рдЯрд░ рд╡рд┐рдВрдбреЛ рдХреЗ рдЕрдВрджрд░, рдЖрдкрдХреЛ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рднрд╡рд┐рд╖реНрдп рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХрддрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рднреАрддрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╕реНрдкреНрд░рд╛рдЗрдЯ рдПрдбрд┐рдЯрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд╛рдЗрдк => рд╕реНрд╡рдЪрд╛рд▓рд┐рдд, рдзреБрд░реА => рдХреЗрдВрджреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдмрд╕ рд╕реНрд▓рд╛рдЗрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред



рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдЕрдиреНрдп рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдПрдХреНрд╢рди, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбред
рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрджрд╛рдиреБрдХреНрд░рдо рдЯреИрдм рдореЗрдВ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рд╕реЗ Create Empty рдЪреБрдиреЗрдВред



рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреЗрдЬ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рд╣реИ - рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо ред рдпрд╣ рдШрдЯрдХ рдордВрдЪ рдкрд░ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐, рдЭреБрдХрд╛рд╡ рдХреЗ рдХреЛрдг рдФрд░ рдЗрд╕рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


рдЖрдк рд╢рдмреНрдж рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  • рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдПрдХ рд╡рд░реНрдЧ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХреНрдпрд╛ рдЖрдпрд╛рдо рд╣реЛрдВрдЧреЗред
  • рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреГрд╢реНрдп рдкрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╛ рдкреИрдорд╛рдиреЗ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдореЗрдВ рдЖрдЧреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдЧреА:
     transform.position = new Vector2 (transform.position.x + dirX, transform.position.y + dirY);. 


    рдпрд╣ рд▓рд╛рдЗрди рдордВрдЪ рдкрд░ рд▓реБрдХрд╛рд╕ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧреАред

рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╕реНрддреБ рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рдЯреИрдм рдореЗрдВ рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдЧрд▓рд╛, рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЦреЛрдЬ рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд╛рдЧреВ рдШрдЯрдХ) рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдПрдХрддрд╛ рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧреАред рдореИрдВрдиреЗ рдЗрд╕ рдШрдЯрдХ рдХреЛ HeroScript.cs рдХрд╣рд╛ рд╣реИред



рдкрд╣рд▓реЗ, рд╣рдо рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд▓реБрдХрд╛рд╕ рдХреЗ рджреГрд╢реНрдп рдФрд░ рднреМрддрд┐рдХ рдШрдЯрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private Animator animator; //      . private Rigidbody2D rb2d; //rb     

рдЕрдЧрд▓рд╛, рдХреНрд╖реЗрддреНрд░ рдЬреЛ рдЪрд░рд┐рддреНрд░ рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 /*  ,     */ Vector3 localScale; bool facingRight = true; [SerializeField] private float dirX, dirY; //    [Range(1f, 20f)] [SerializeField] private float moveSpeed; //    private SpriteRenderer sprite; //   SpriteRenderer /*   ,     */ 

рдПрдХ рд╢реБрд░реБрдЖрдд рдХреА рдЧрдИ рд╣реИ, рдЙрддреНрдХреГрд╖реНрдЯред рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдЧрдгрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд▓рд┐рдЦреА рдЬрд╛рдПрдЧреА рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧреАред рдпрд╣ рдЧрдгрдирд╛ рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рд▓рд┐рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 /* *      . *         *    . */ public enum CharState { idle, //   0 Run, //   1 Walk, //   2 Die //   3 } 

рд╣рдо рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдирдпрд╛ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕реЗрдЯ рдХрд░реЗрдЧреА:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public CharState State { get {//    CharState    animator       int return (CharState)animator.GetInteger("State"); } set { //    animator     int    State       ,      int. animator.SetInteger("State", (int)value); } } 

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдФрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдПрдиреАрдореЗрд╢рди рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реЛрдЧреАред рдЕрдЧрд▓рд╛, рджреВрд╕рд░рд╛ рдЪрд░рдгред рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдХреЛ рдмрд╛рдВрдзрдиреЗ рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕ рдЕрдВрддрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдорд▓реНрдЯреА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдмрд╕ рдпреВрдирд┐рдЯреА рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдлрд╝реНрд░реЗрдореЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЦреАрдВрдЪрдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИред


рдЫрд╡рд┐


рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдЖрдкрдХреЛ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рдФрд░ рдкреНрд▓реЗ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рд░реВрдк рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕ рдкрд░ рдбрдмрд▓ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдПрдирд┐рдореЗрдЯрд░ рдЯреИрдм рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ред рдЕрдВрджрд░, рдЖрдкрдХреЛ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд╕рд╛рде рдХрдИ рдмреНрд▓реЙрдХ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдВрдЯреНрд░реА рдХреЗ рд░рд╛рдЬреНрдп рдФрд░ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рд╕реЗрдЯ рдЬреЛ рдЬреБрдбрд╝реЗ рдереЗред AnyState рдФрд░ рдЕрдиреНрдп рдПрдирд┐рдореЗрд╢рди рдирд┐рдпрдорд┐рдд рдЧреНрд░реЗ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд╕рдм рдХреБрдЫ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ AnyState рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдФрд░ рдПрдХрдорд╛рддреНрд░ рдореЗрдХ рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рди рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЧреНрд░реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдмрд╛рдБрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдСрдкрд░реЗрд╢рди рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред


рдЫрд╡рд┐


рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЕрд░реНрдерд╛рддреН рдЗрд╕рдХрд╛ рдмрд╛рдпрд╛рдВ рд╣рд┐рд╕реНрд╕рд╛ред рдкреИрд░рд╛рдореАрдЯрд░ рдЯреИрдмред рдЗрд╕рдореЗрдВ int int рд╕реНрдЯреЗрдЯ рдХрд╛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рджрд╛рдИрдВ рдУрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рдВрдХреНрд░рдордг рд╕реЗ, рдЖрдкрдХреЛ рдХреИрди рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рди рдЯреВ рд╕реЗрд▓реНрдл рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдСрдкрд░реЗрд╢рди рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдФрд░ рдХрднреА-рдХрднреА рдПрдиреАрдореЗрд╢рди рд╕реЗ рдЕрдЬреАрдм рдФрд░ рдХрднреА-рдХрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреНрд░рдордгреЛрдВ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдВ рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдПрдиреАрдореЗрд╢рди рд╕рдВрдХреНрд░рдордг рдХреЛ рд░рд╛рдЬреНрдп рдЪрд░ рдХрд╛ рдорд╛рди 3 рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХрддрд╛ рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдПрдирд┐рдореЗрдЯреЗрдб рдЪрд░рд┐рддреНрд░ рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред


рдЕрдЧрд▓рд╛ рдЪрд░рдг рд▓реБрдХрд╛рд╕ рдХреЛ рдордВрдЪ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИред рджреГрд╢реНрдп рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд░рд┐рддреНрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд▓реБрдХрд╛рд╕ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрд╕реЗрдЯреНрд╕ рд╕реНрдЯреЛрд░ рдЯреИрдм рдореЗрдВ, рд╣рдореЗрдВ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рдПрд╕реЗрдЯреНрд╕ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ, рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрд░реНрдерд╛рддреН:


тАв CrossPlatformInput
тАв рд╕рдВрдкрд╛рджрдХ
тАв рдкрд░реНрдпрд╛рд╡рд░рдг


рдПрд╕реЗрдЯ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХрддрд╛ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреИрдм рдореЛрдмрд╛рдЗрд▓ рдЗрдирдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╣рдо рдЗрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВред


рдЪрд▓реЛ рдордВрдЪ рдкрд░ рдирдП рдпреВрдЖрдИ рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ - рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрдиред рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╢рд╛ рдореЗрдВ 4 рдмрдЯрди рдмрдирд╛рдПрдВред рдКрдкрд░, рдиреАрдЪреЗ, рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗред рдЫрд╡рд┐ рдШрдЯрдХ рдореЗрдВ, рд╣рдо рдПрдХ рдЫрд╡рд┐ рдХреЛ рдмрдЯрди рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдпрд╣ рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рдХреБрдЫ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдПрдХ AxisTouchButton рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рд▓рд┐рдкрд┐ рдХреЗ рдХреЗрд╡рд▓ 4 рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдзреБрд░реАрдирд╛рдо рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдирд╛рдо рдХрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред рдПрдХреНрд╕рд▓рд╡реНрдпреВ рдлрд╝реАрд▓реНрдб рдЙрд╕ рджрд┐рд╢рд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реБрдХрд╛рд╕ рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛ред рд▓рдХреНрд╕рд╕ рдЕрдкрдиреА рдЧрддрд┐ рдХреЛ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд░рд┐рд╕реНрдкрд╛рдВрд╕рдкреАрдб рдлреАрд▓реНрдб рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдмрдЯрди рдХреЛ рдХреЗрдВрджреНрд░ рдореЗрдВ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП returnToatalogSpeed рдлрд╝реАрд▓реНрдб рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдлреЙрд░рд╡рд░реНрдб рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджреЗрдВред рдмреИрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╖ рдХреЗ рдорд╛рди рдХреЛ -1 рдореЗрдВ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рд▓реБрдХрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПред рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреЗ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╖ рдХреЛ рдмрджрд▓реЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ ред рдЕрдк рдмрдЯрди рдПрдХреНрд╕рд┐рд▓рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП, рдорд╛рди -1 рдХреЛ рдбрд╛рдЙрди -1 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВред


рдЗрд╕рдХреЗ рдмрд╛рдж HeroScript.cs рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ ред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдирд╛рдо рд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗрдВ


 using UnityStandardAssets.CrossPlatformInput; //    . 

рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
        : /*  ,     */ Vector3 localScale; //   bool facingRight = true; [SerializeField] private float dirX, dirY; //    [Range(1f, 20f)] [SerializeField] private float moveSpeed; //    private SpriteRenderer sprite; //   SpriteRenderer /*   ,     */ 

рдорд╛рдирдХ рдкреНрд░рд╛рд░рдВрдн рд╡рд┐рдзрд┐ рдореЗрдВ, рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
  void Start() { localScale = transform.localScale; animator = GetComponent<Animator>(); //     . sprite = GetComponent<SpriteRenderer>(); //  SpriteRenderer rb = GetComponent<Rigidbody2D>(); State = CharState.idle; } 

рд╣рдо рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдирд╛рдпрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public void MoveHero() { dirX = CrossPlatformInputManager.GetAxis ("Horizontal") * moveSpeed * Time.deltaTime; dirY = CrossPlatformInputManager.GetAxis ("Vertical") * moveSpeed * Time.deltaTime; transform.position = new Vector2 (transform.position.x + dirX, transform.position.y + dirY); } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред DirX рдФрд░ DirY рдлрд╝реАрд▓реНрдб рдПрдХреНрд╕рд┐рд╕ ( рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ ) рдХреА рджрд┐рд╢рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЧрддрд┐ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреА рд╣реИ (рдЬрд┐рд╕реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА) рдФрд░ рдЕрдВрддрд┐рдо рдлреНрд░реЗрдо рд╕реЗ рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рдордп рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
transform.position рд╣рдорд╛рд░реЗ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдШрдЯрдХ рдореЗрдВ рдирдИ рд╕реНрдерд┐рддрд┐ рд▓рд┐рдЦрддрд╛ рд╣реИред


рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрдХреНрд╖ рдкрд░, рдЖрдк рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реБрдХрд╛рд╕ рд░рд╕рд╛рддрд▓ рдореЗрдВ рдХреИрд╕реЗ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд░реЛрдХ рд╕рдХрддреА рд╣реИред рд▓реБрдХрд╛рд╕ рд╣рдореЗрд╢рд╛ рдЖрдЗрдбрд▓ рдПрдиреАрдореЗрд╢рди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЬрдм рд╣рдо рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣ рдШреВрдорддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗ рдХрд┐ рд▓реБрдХрд╛рд╕ рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 void CheckWhereToFace () { if (dirX > 0) { facingRight = true; State = CharState.Walk; } if (dirX < 0) { facingRight = false; State = CharState.Walk; } if (dirX == 0) { State = CharState.idle; } if (dirY < 0) { State = CharState.Walk; } if (dirY > 0) { State = CharState.Walk; } if (((facingRight) && (localScale.x < 0)) || ((!facingRight) && (localScale.x > 0))) localScale.x *= -1; transform.localScale = localScale; 

рдХреЛрдб рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдХрд┐ рдпрджрд┐ dirX > 0 (рдпрджрд┐ рд╣рдо рджрд╛рдИрдВ рдУрд░ рдЬрд╛рддреЗ рд╣реИрдВ), рддреЛ рд╣рдо рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдШреБрдорд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЙрдХ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ 0 рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд▓реБрдХрд╛рд╕ 180 рдбрд┐рдЧреНрд░реА рдШреБрдорд╛рдПрдВ рдФрд░ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВред рдпрджрд┐ dirX рд╢реВрдиреНрдп рд╣реИ, рддреЛ рд▓реБрдХрд╛рд╕ рдЦрдбрд╝рд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдХреЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдХреНрдпреЛрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреНрд▓рд┐рдкрдПрдХреНрд╕ = рд╕рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ? рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХреЛ рд╣рд╛рде рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд▓реБрдХрд╛рд╕ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдХреБрдЫ рдзрд╛рд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЬрд┐рд╕ рд╡рд╕реНрддреБ рдХреЛ рдореИрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ рд╡рд╣ рджрд╛рдИрдВ рдУрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд░рд╣реЗрдЧреА рдЬрдм рд▓реБрдХрд╛рд╕ рдмрд╛рдИрдВ рдУрд░ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдЬрд╝реВрдорд┐рдВрдЧ рдЙрд╕ рд╡рд╕реНрддреБ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧреА рдЬреЛ рд▓реБрдХрд╛рд╕ рдХреЛ рдЙрд╕реА рджрд┐рд╢рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдЬрд╣рд╛рдВ рд▓реБрдХрд╛рд╕ рдЦреБрдж рдмрджрд▓ рдЧрдпрд╛ рдерд╛ред


рд╣рдо CheckWhereToFace () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдлреНрд░реЗрдо-рдмрд╛рдп-рдлреНрд░реЗрдо рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред


рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред 5 рдХреЗ рдкрд╣рд▓реЗ 2 рдЕрдВрдХ рдкреВрд░реЗ рд╣реЛ рдЧрдП рд╣реИрдВред рдЪрд▓реЛ рд▓реБрдХрд╛рд╕ рдХреА рдЬрд░реВрд░рддреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдмрддрд╛рддреЗ рдЪрд▓реЗрдВ рдХрд┐ рд▓реБрдХрд╛рд╕ рдХреЛ рдЬрд┐рдВрджрд╛ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП 3 рддрд░рд╣ рдХреА рдЬрд░реВрд░рддреЗрдВ рдкреВрд░реА рдХрд░рдиреА рд╣реЛрдВрдЧреАред рдпрд╣ рдЬреАрд╡рди рд╕реНрддрд░, рднреВрдЦ рдХрд╛ рд╕реНрддрд░ рдФрд░ рдкреНрдпрд╛рд╕ рдХрд╛ рд╕реНрддрд░ рд╣реИред рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкреИрдирд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдкреИрдирд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ UI => рдкреИрдирд▓ рдЪреБрдиреЗрдВ ред


рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд▓рдЧрднрдЧ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ


рдЫрд╡рд┐


рдкреИрдирд▓ рдореЗрдВ рддреАрди рдЪрд┐рддреНрд░ (рдкреНрд░рддреНрдпреЗрдХ) (рдмрд╛рдПрдВ) рдХреА рдЫрд╡рд┐ рд╣реЛрддреА рд╣реИред рджрд╛рдИрдВ рдУрд░ рдкреИрдирд▓ рд╣реА рд╣реИред рдкрд╣рд▓реА рдкрд░рдд рдкрд░ (рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд╛рд▓реЗрдВрдЧреЗ), рдПрдХ рд░рдВрдЧ рд╕рдВрдХреЗрддрдХ (рдЫрд╡рд┐) рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдЫрд╡рд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред рдпрд╣ рдЫрд╡рд┐ рдореВрд▓ рд╕реЗ рдЖрдзреА рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЫрд╡рд┐, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЫрд╡рд┐ рдкреНрд░рдХрд╛рд░ = рднрд░реА рд╣реБрдИ рд╕рдВрдкрддреНрддрд┐ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреА рдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдХрдореА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред


рдЫрд╡рд┐


рдЫрд╡рд┐


рдирдП рд╕реНрдерд┐рд░ рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 /*  ,     */ [SerializeField] public static float Health = 100, Eat = 100, Water = 100, _Eat = 0.05f, _Water = 0.1f; //        .    _  . /*   ,     */ /*  ,      */ [SerializeField] Image iHealt, iEat, iWater; //      /*   ,      */ 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореИрдВ рд╕реНрдереИрддрд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпреЗ рдХреНрд╖реЗрддреНрд░ рдкреВрд░реА рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╣рдореЗрдВ рд╕реАрдзреЗ рд╡рд░реНрдЧ рдирд╛рдо рд╕реЗ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╣рдо рдХреБрдЫ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private float fEat(float x) { Eat = Eat - x * Time.deltaTime; iEat.fillAmount = Eat / 100f; // ,        return Eat; } private float fWater(float x) { Water = Water - x * Time.deltaTime; iWater.fillAmount = Water / 100; return Water; } 

рдлрд┐рд░, рд╣рдо рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЦрд╛рдиреЗ рдФрд░ рдкреАрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private void Needs() { if (fEat(_Eat) < 0) { Debug.Log(Eat); } else if (fEat(0) == 0) { StartCoroutine(ifDie()); } if (fWater(_Water) < 0) { Debug.Log(Water); } else if (fWater(0) == 0) { StartCoroutine(ifDie()); } 

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд░реЗрдо рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ


 if (fEat(_Eat) < 0) 

рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдХрд┐ рдИрдЯ рдФрд░ рдЬрд▓ рдЪрд░ рд╕реЗ рдХрд┐рддрдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо 0 рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓реБрдХрд╛рд╕ рдЕрднреА рддрдХ рдкреНрдпрд╛рд╕ рдпрд╛ рднреВрдЦ рд╕реЗ рдорд░ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд▓реБрдХрд╛рд╕ рднреБрдЦрдорд░реА рдпрд╛ рдирд╢реНрд╡рд░ рдШрд╛рд╡реЛрдВ рд╕реЗ рдорд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреЛрд░рдЯрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ


 StartCoroutine(ifDie()); 

рдЬреЛ рдореМрдд рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрддрд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 IEnumerator ifDie() { State = CharState.Die; yield return new WaitForSeconds(2); SceneManager.LoadScene("WoodDay", LoadSceneMode.Single); } 

рд╣рд╛рд░реНрдб рдЯрд╛рдЗрд▓


рдПрдХ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг: рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдмреНрд░реЛрд╕ (рдирд┐рдирдЯреЗрдВрдбреЛ, 1985) рдореЗрдВ рд▓рд┐рдВрдЧред


рдкреГрдереНрд╡реА рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдФрд░ рд▓реБрдХрд╛рд╕ рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ BoxCollider2D рдФрд░ Rigidbody2D рдШрдЯрдХреЛрдВ рдХреЛ рд▓реБрдХрд╛рд╕ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдкреГрдереНрд╡реА рдХреЗ рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ BoxCollider2D рдШрдЯрдХ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред BoxCollider2D рдШрдЯрдХ рдХреЛрд▓рд░реНрд╕ рдФрд░ рдЙрдирдХреЗ рдЯрдХрд░рд╛рд╡ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдореЗрдВ рд▓реБрдХрд╛рд╕ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рдЬрд┐рд╕реЗ рд╣рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреА рд╕реАрдорд╛рдПрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдореАрди рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдШрд╛рд╕ рдХреА рд╕рддрд╣ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдШрд╛рд╕ рд▓реБрдХрд╛рд╕ рдХреЗ рд╡рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдореИрдВ рдШрдЯрдХ рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдВрдЧрд╛ред



рдЕрдм, рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рд╕реНрддрд░ рдЕрдВрдХрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕ рдХреНрдпреВрдм рдХреЛ рднреВрдорд┐ рд╕реЗ рдкреНрд░реАрдлрд╝реИрдм рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░реАрдлрд╝реИрдм рдПрдХ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рдВрд╢реЛрдзрди рдкрд░ рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рдкреНрд░реАрдлрд╝реИрдм рдХреЛ CTRL + D (рдкрджрд╛рдиреБрдХреНрд░рдо рдЯреИрдм рдореЗрдВ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж) рдХреЗ рд╕рд╛рде рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдордВрдЪ рдкрд░ рд░рдЦреЗрдВред


рдЫрд╡рд┐


рдкреНрд░рджрд░реНрд╢рди


рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдЦреЗрд▓ рдХреЗ рд╕реНрддрд░ / рджреБрдирд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред


рдПрдХ рдХреИрдорд░рд╛ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджреГрд╢реНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдЧрд╛ред рдЕрдЧрд▓рд╛, рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧреА:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public GameObject objectToFollow; public float speed = 2.0f; void Update () { CamFoll(); } private void CamFoll() { float interpolation = speed * Time.deltaTime; Vector3 position = this.transform.position; position.y = Mathf.Lerp(this.transform.position.y, objectToFollow.transform.position.y, interpolation); position.x = Mathf.Lerp(this.transform.position.x, objectToFollow.transform.position.x, interpolation); this.transform.position = position; } 

GameObject рдкреНрд░рдХрд╛рд░ рдХреЗ objectToFollow рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕реНрдкреАрдб рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдЬрд┐рд╕ рдЧрддрд┐ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП GameObject рдХреЗ рдкреАрдЫреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рдкреНрд░рдХреНрд╖реЗрдк рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдлреНрд░реЗрдо рджрд░реНрдЬ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЧрддрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реАред рдЗрд╕рдХреЗ рдмрд╛рдж, Lerp рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ X рдФрд░ U рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдкрд░ рд▓реБрдХрд╛рд╕ рдХреЗ рдкреАрдЫреЗ рдХреИрдорд░реЗ рдХреА рд╕реБрдЧрдо рдЧрддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рд▓рд╛рдЗрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред


 position.y = Mathf.Lerp(this.transform.position.y, objectToFollow.transform.position.y, interpolation); 

рдЧрдгрд┐рдд рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд╣реВрдВрдЧрд╛ - рдпрд╣ рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдмрдврд╝рд╛рдПрдЧреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреАрдЫреЗ рдХреИрдорд░реЗ рдХреА рдЧрддрд┐ рд╣реИред


рдЦрд╝рддрд░рд╛


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ

рдРрд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг: 1001 рд╕реНрдкрд╛рдЗрдХреНрд╕ (рдирд┐рдХрд▓рд┐рд╕ рдФрд░ 8 рдмрд┐рдЯреНрд╕ рдлреИрдиреЗрдЯрд┐рдХреНрд╕, 2014) рд╕реЗ рд╕реНрдкрд╛рдЗрдХреНрд╕ред


рдЖрдЗрдП рдХреБрдЫ рдРрд╕рд╛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬреЛ рди рдХреЗрд╡рд▓ рд▓реБрдХрд╛рд╕ рдХреЛ рдордВрдЪ рд╕реЗ рдЕрдВрдд рддрдХ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЙрд╕рдХреЗ рдЬреАрд╡рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдорд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ (рдПрдХ рдХреЗ рд▓рд┐рдП, рд╣рдо рд▓реБрдХрд╛рд╕ рдХреА рдЬреАрд╡рди рдХрд╣рд╛рдиреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдВрдЪрд╡реЗрдВ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ - рдирд╛рдпрдХ рдорд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдорд░ рд╕рдХрддрд╛ рд╣реИ)ред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХреЛ рдЙрд╕ рдордВрдЪ рдкрд░ рдлреИрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╡рдирд╕реНрдкрддрд┐ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЪреМрдХрд╕реА рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред


рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд░реЗрдВрдбрд░рд░ рдФрд░ рдкреЙрд▓реАрдЧреЙрди рдХреЛрд▓реНрд▓рд░ 2 рдбреА рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рд╕реНрдкреНрд░рд╛рдЗрдЯ рд░реЗрдВрдбрд░рд░ рдШрдЯрдХ рдореЗрдВ, рд╣рдо рдХрд╛рдВрдЯреЗрджрд╛рд░ рдмрдЯрди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреИрдЧ = рдХрд╛рдВрдЯреЗ рдХреЛ рд╕реНрдкрд╛рдЗрдХ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред


рдЗрд╕рдХреЗ рдмрд╛рдж, рд▓реБрдХрд╛рд╕ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдкрд░, рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧреА, рдЕрдЧрд░ рд▓реБрдХрд╛рд╕ рдЕрдиреНрдп рдХреЛрд▓рд░реНрд╕ рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ ColliderReaction.cs рдХрд╣рд╛


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private Rigidbody2D rb2d; void Start() { rb2d = GetComponent<Rigidbody2D>(); } public void OnTriggerEnter2D(Collider2D collision) { switch (collision.gameObject.tag) { case "Thorn": { rb2d.AddForce(transform.up * 4, ForceMode2D.Impulse); HeroScript.Health = HeroScript.Health - 5; } break; } } 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рд╛рд░ 2x2 рдЬрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИред рдЬрдм рдПрдХ рдХрд╛рдВрдЯрд╛ рдЯреИрдЧ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ , рддреЛ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЙрди рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрднреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдВрдЯрд╛ рд╣реИ ред рдкрд╣рд▓реЗ, рд▓реБрдХрд╛рд╕ рдлреЗрдВрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рдПрдХ рд╕реНрдерд┐рд░ рдЪрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд▓реБрдХрд╛рд╕ рд╕реЗ 5 рдЬреАрд╡рди рдЗрдХрд╛рдЗрдпрд╛рдВ рд▓реЗрддреЗ рд╣реИрдВред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЪреАрдЬ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 case "Enemy": { rb2d.AddForce(transform.up * 2, ForceMode2D.Impulse); HeroScript.Health = HeroScript.Health - 10; } break; 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдкрддреНрдерд░ рд╕реЗ рджреЛ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛ред


рдПрдХрддреНрд░рд┐рдд рд╡рд╕реНрддреБ рдФрд░ рдирд┐рдпрдоред


рдПрдХ рдЦреЗрд▓ рд╡рд╕реНрддреБ рдЬрд┐рд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рдо рдирд┐рдпрдо рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд▓реБрдХрд╛рд╕ рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд╛рдирд╛ рдФрд░ рдКрдкрд░ рдЪрдврд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреБрд▓реЛрдВ рдФрд░ рд╕реАрдврд╝рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдбрд╝ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд░рд┐рдд рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдПрдХ рдкреЗрдбрд╝ рдФрд░ рд╕реАрдврд╝рд┐рдпрд╛рдВ рдмрдирд╛рдПрдВрдЧреЗред


рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЙрд╕ рдкреЗрдбрд╝ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд╛рдЯрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдХрд┐рддрдиреЗ рд▓реЙрдЧ рд╕реЗ рджрд╕реНрддрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рд╣рдорд▓реЗ рдХрд╛ рдПрдиреАрдореЗрд╢рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдо рдкреЗрдбрд╝ (рдЙрддреНрдкрд╛рджрди рд▓рд╛рдЧрдд) рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдкреЗрдбрд╝ рдкрд░ рдЬреЛ рд▓рд┐рдкрд┐ рд╣реИ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 [SerializeField] private Transform inst; //     [SerializeField] private GameObject FireWoodPref; //   [SerializeField] private int fireWood; //        

рдЬрдм рд╕реНрддрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдлрд╝рд╛рдпрд░рд╡реВрдб рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 void Awake() { fireWood = Random.Range(4,10); } 

рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЭрдЯрдХреЗ рдореЗрдВ рдХрд┐рддрдиреЗ рд▓реЙрдЧ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public int fireWoodCounter(int x) { for (int i = 0; i < fireWood; i++) { fireWood = fireWood - x; InstantiateFireWood(); } return fireWood; } 

рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ рдордВрдЪ рдкрд░ рд▓реЙрдЧ рдХреНрд▓реЛрди рдмрдирд╛рдПрдЧреАред
рдирд┐рдЬреА рд╢реВрдиреНрдп рдЭрдЯрдкрдЯрдлрд╝рд╛рдпрд░рд╡реВрдб ():


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
  { Instantiate(FireWoodPref, inst.position, inst.rotation); } 


рдЖрдЗрдП рдПрдХ рд▓реЙрдЧ рдмрдирд╛рдПрдВ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public void OnTriggerEnter2D(Collider2D collision) { switch (collision.gameObject.tag) { case "Player": { if (InventoryOnHero.woodCount > 10) { Debug.Log("   !"); } else { InventoryOnHero.woodCount = InventoryOnHero.woodCount + 1; Destroy(this.gameObject); } } break; } } 

рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рднреА рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдмреИрдЧ рдореЗрдВ рдЬрдЧрд╣ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдФрд░ рд▓реЙрдЧ рдЭреВрда рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╕реНрдерд╛рди рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдЗрдХрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреБрд▓реЛрдВ рдФрд░ рд╕реАрдврд╝рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред


рдкреБрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреБрд▓ рдХреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╕рд╛рде 2 рдкреНрд░реАрдлреИрдм рдЪрд╛рд╣рд┐рдПред BoxCollider2D . , , - , .


:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 [SerializeField] private Transform inst1, inst2; //        [SerializeField] private GameObject bridgePref1, bridgePref2; //   [SerializeField] private int BridgeCount; //   ,   .    

:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public void BuildBridge() { if (InventoryOnHero.woodCount == 0) { Debug.LogWarning (" !"); } if (InventoryOnHero.woodCount > 0) { BridgeCount = BridgeCount - 1; InventoryOnHero.woodCount = InventoryOnHero.woodCount - 1; } switch (BridgeCount) { case 5: Inst1(); break; case 0: Inst2(); break; default: Debug.LogWarning("-      "); break; } } 

, , . , 10 , 12 8.


, , , , . , 1 , 1 . , 5, , . 0, . , .


.


, ColliderReaction.cs :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 void OnTriggerStay2D(Collider2D collision) { switch (collision.gameObject.tag) { case "Ladder": { rb2d.gravityScale = 0; } break; } } void OnTriggerExit2D(Collider2D collision) { switch (collision.gameObject.tag) { case "Ladder": { rb2d.gravityScale = 1; } break; } } 

OnTriggerStay2D , . , 0. , . OnTriggerExit2D , .



, .


19 , . , , , , , .


GO, SpriteRenderer , BoxCollider2D , Rigidbody2D . , тАФ , . , ru.stackoverflow.com.


рдЫрд╡рд┐


Trees .


, . , -, , Raycast 2 (4 ). , , , ( ). ( ), . , . , , . , . , , ( , ).


, . , - .


:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 [SerializeField] private GameObject area; private bool m1 = true, m2; // m  move private void fGreenMonster() { float dist = Vector3.Distance(greenMonster.transform.position, area.transform.position); Debug.Log(dist); if (m1) { if (dist < 3f) { transform.position += new Vector3(speed,0,0) * Time.deltaTime; SR.flipX = true; } else { m1 = false; m2 = true; } } if (m2) { if(dist >= 1f) { transform.position += new Vector3(-speed,0,0) * Time.deltaTime; SR.flipX = false; } else { m2 = false; m1 = true; } } } 

Update() , . , 3 , . 3, , .


рдЫрд╡рд┐


, .


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private void fSunFlower() { canBullet = canBullet - minus * Time.deltaTime; if (canBullet <= 0 && SR.flipX == false) { GameObject newArrow = Instantiate(sunFlowerBullet) as GameObject; newArrow.transform.position = transform.position; Rigidbody2D rb = newArrow.GetComponent<Rigidbody2D>(); rb.velocity = sunFlowerTrans.transform.forward * -sunFlowerBulletSpeed; canBullet = 2; } if (canBullet <= 0 && SR.flipX == true) { GameObject newArrow = Instantiate(sunFlowerBullet) as GameObject; newArrow.transform.position = transform.position; Rigidbody2D rb = newArrow.GetComponent<Rigidbody2D>(); rb.velocity = sunFlowerTrans.transform.forward * sunFlowerBulletSpeed; canBullet = 2; } 

 canBullet = canBullet - minus * Time.deltaTime; 

, .


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 if (canBullet <= 0 && SR.flipX == false) { GameObject newArrow = Instantiate(sunFlowerBullet) } 

, , , , :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public int Damage(int x) { Health = Health - x; return Health; } 

, , :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 public void ifDie() { if (Damage(0) <= 0) { Destroy(this.gameObject); } } 

0, .


, :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 if (bGreenMonster) { fGreenMonster(); } if (bSunFlower) { fSunFlower(); } 

, .


рдЫрд╡рд┐


.


, ?


, .


:



:


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 [SerializeField] private Transform Hero; //         [SerializeField] private float distWhatHeroSee; //   [SerializeField] private LayerMask Tree, BridgeBuild, LadderBuild ,drinkingWater, lEnemy; //   

, :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 private void AttackBtn() { if (CrossPlatformInputManager.GetButtonDown("Attack")) { GameObject.Find("Hero").GetComponent<HeroScript>().State = CharState.AttackA; Collider2D[] Trees = Physics2D.OverlapCircleAll(Hero.position, distWhatHeroSee, Tree); for (int i = 0; i < Trees.Length; i++) { Trees[i].GetComponent<TreeControl>().fireWoodCounter(1); Debug.Log("Trees Collider"); HeroScript.Water = HeroScript.Water - 0.7f; } // BB  BridgeBuild Collider2D[] BB = Physics2D.OverlapCircleAll(Hero.position, distWhatHeroSee, BridgeBuild); for (int i = 0; i < BB.Length; i++) { BB[i].GetComponent<BridgeBuilding>().BuildBridge(); HeroScript.Water = HeroScript.Water - 0.17f; } 

 GameObject.Find("Hero").GetComponent<HeroScript>().State = CharState.AttackA; 

, .
, :


рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 Collider2D[] Trees = Physics2D.OverlapCircleAll(Hero.position, distWhatHeroSee, Tree); for (int i = 0; i < Trees.Length; i++) { Trees[i].GetComponent<TreeControl>().fireWoodCounter(1); Debug.Log("Trees Collider"); HeroScript.Water = HeroScript.Water - 0.7f; } 

Trees , . , , , . .
, . Simple as that!


, - :


рдЫрд╡рд┐


, тАФ .
, . , , , .


2 , .


!


.


https://opengameart.org/ , :


Source: https://habr.com/ru/post/hi458846/


All Articles