рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдПрдХ рдПрдХрддрд╛ рдЦреЗрд▓ рдмрдирд╛рдирд╛ - рднрд╛рдЧ 1

рдЫрд╡рд┐

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

рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗ:

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

рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдЧреЗрдо рдХрд╛ рдлреНрд░реЗрдо рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдЧреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ!

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

рдореИрдВ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╣рд╛рдереА рджрд╛рдВрдд рдЯреЙрд╡рд░ рдХреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ


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

рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдХреБрдХреА рдХреЛ рдкрд╛рдиреЗ рддрдХ рд╕рднреА рдХреАрдбрд╝реЗ рдорд╛рд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд╢реНрдордиреЛрдВ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд▓рд╣рд░ рдХреЛ рд╣рд░рд╛рдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЬрдм рдЖрдк рд╕рднреА рд▓рд╣рд░реЛрдВ (рдЬреАрдд!) рд╕реЗ рдмрдЪ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдХреБрдХреАрдЬрд╝ (рд╣рд╛рдирд┐!) рдкрд░ рдкрд╛рдБрдЪ рджреБрд╢реНрдорди рд░реЗрдВрдЧрддреЗ рд╣реИрдВ, рддреЛ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рдЦреЗрд▓ рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ:


рд░рд╛рдХреНрд╖рд╕, рдПрдХрдЬреБрдЯ! рдХреБрдХреА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВ!

рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛


рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЦрд╛рд▓реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ рдпреВрдирд┐рдЯреА рдореЗрдВ рдЯреЙрд╡рд░рдбрд┐рдлрд╝реЗрдВрд╕-рдкрд╛рд░реНрдЯ 1-рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред

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

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

рджреГрд╢реНрдпреЛрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд GameScene рдЦреЛрд▓реЗрдВ рдФрд░ рдЧреЗрдо рдореЛрдб рдХреЛ 4: 3 рдХреЗ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рднреА рд▓реЗрдмрд▓ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдВред рдЧреЗрдо рдореЛрдб рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:


рдЧреНрд░рдиреНрдердХрд╛рд░рд┐рддрд╛:

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

рдЬрдЧрд╣ рдХреЛ рдПрдХ рдХреНрд░реЙрд╕ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХрд╛ рд╕реНрдерд╛рди


рд░рд╛рдХреНрд╖рд╕ рдХреЗрд╡рд▓ рдПрдХ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрдиреНрд╣реЗрдВ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд░ рд╕реЗ рдЗрдореЗрдЬреЗрд╕ \ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдУрдкрдиреНрд╕рдкреЙрдЯ рдХреЛ рджреГрд╢реНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪреЗрдВред рдЬрдмрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ Openspot рдХрд╛ рдЪрдпрди рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ Add Component рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Box Collider 2D рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рджреГрд╢реНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдПрдХрддрд╛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЛ рд╣рд░реА рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреАред рд╣рдо рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрд▓рд╛рдЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рдЙрд╕реА рддрд░рд╣ рд╕реЗ Openspot рдореЗрдВ Audio \ Audio рд╕реНрд░реЛрдд рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред рдСрдбрд┐рдпреЛ рд╕реНрд░реЛрдд рдШрдЯрдХ рдХреЗ AudioClip рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП, рдСрдбрд┐рдпреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдЯреЙрд╡рд░_рдкреНрд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ Play On Awake рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

рд╣рдореЗрдВ 11 рдФрд░ рдмрд┐рдВрджреБ рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рд▓реЛрднрди рд╣реИ, рдПрдХрддрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рдмреЗрд╣рддрд░ рдЙрдкрд╛рдп рд╣реИ: рдкреНрд░реАрдлреИрдм !

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ Prefabs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ Openspot рдЦреАрдВрдЪреЗрдВред рдЗрд╕рдХрд╛ рдирд╛рдо рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдиреАрд▓рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:


рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░реАрдлреИрдм рд░рд┐рдХреНрдд рд╣реИ, рд╣рдо рдЬрд┐рддрдиреА рдЪрд╛рд╣реЗрдВ рдЙрддрдиреЗ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ Prefabs рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ Openspot рдХреЛ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВред рдЗрд╕реЗ 11 рдмрд╛рд░ рджреЛрд╣рд░рд╛рдПрдВ рдФрд░ рджреГрд╢реНрдп рдореЗрдВ 12 рдСрдкреНрд╕рдирдкреЙрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЗрди 12 Openspot рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  • (X: -5.2, Y: 3.5, Z: 0)
  • (X: -2.2, Y: 3.5, Z: 0)
  • (рдПрдХреНрд╕: 0.8, рд╡рд╛рдИ: 3.5, рдЬреЗрдб: 0)
  • (X: 3.8, Y: 3.5, Z: 0)
  • (X: -3.8, Y: 0.4, Z: 0)
  • (рдПрдХреНрд╕: -0.8, рд╡рд╛рдИ: 0.4, рдЬреЗрдб: 0)
  • (X: 2.2, Y: 0.4, Z: 0)
  • (X: 5.2, Y: 0.4, Z: 0)
  • (X: -5.2, Y: -3.0, Z: 0)
  • (X: -2.2, Y: -3.0, Z: 0)
  • (рдПрдХреНрд╕: 0.8, рд╡рд╛рдИ: -3.0, рдЬреЗрдб: 0)
  • (X: 3.8, Y: -3.0, Z: 0)

рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджреГрд╢реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:


рд╣рдо рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рд░рдЦрддреЗ рд╣реИрдВ


рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реАрдлрд╝реИрдм рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдореЙрдиреНрд╕реНрдЯрд░ рдкреНрд░реАрдлрд╝реИрдм рд╣реИред


рд░рд╛рдХреНрд╖рд╕ Prefab рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ

рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдФрд░ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реВрдЯрд┐рдВрдЧ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

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

рдЕрдм рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдореЙрдиреНрд╕рдЯрд░ рдХреЛ рдУрдкрдиреНрд╕рдкреЙрдЯ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдЧреА ред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, Prefabs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ Openspot рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рдПрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рд░рдЦреЗрдВ ред C Sharp рдХреЛ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреЗрдВ рдФрд░ Create and Add рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ Openspot рдХреЗ рдкреНрд░реАрдлрд╝реИрдм рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА Openspot рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдм рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧреАред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!

рдЖрдИрдбреАрдИ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ рджреЛ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

public GameObject monsterPrefab; private GameObject monster; 

рд╣рдо рд░рд╛рдХреНрд╖рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП monsterPrefab рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ monster рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЦреЗрд▓ рдХреЗ рджреМрд░рд╛рди рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдкреНрд░рддрд┐ рдмрд┐рдВрджреБ рдПрдХ рд░рд╛рдХреНрд╖рд╕


рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдХреЛ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

 private bool CanPlaceMonster() { return monster == null; } 

CanPlaceMonster() рд╣рдо рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ monster рдЪрд░ рдЕрднреА рднреА null ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдмрд┐рдВрджреБ рдкрд░ рдХреЛрдИ рд░рд╛рдХреНрд╖рд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рдЦрд┐рд▓рд╛рдбрд╝реА рдЗрд╕ GameObject рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд░рд╛рдХреНрд╖рд╕ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 //1 void OnMouseUp() { //2 if (CanPlaceMonster()) { //3 monster = (GameObject) Instantiate(monsterPrefab, transform.position, Quaternion.identity); //4 AudioSource audioSource = gameObject.GetComponent<AudioSource>(); audioSource.PlayOneShot(audioSource.clip); // TODO:   } } 

рдЬрдм рдЖрдк рдорд╛рдЙрд╕ рдХреЛ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреВрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреЛрдб рд░рд╛рдХреНрд╖рд╕ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИред рд╡рд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

  1. рдЬрдм рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдлрд┐рдЬрд┐рдХрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ GameObject рдХреЛ рдЯрдЪ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ OnMouseUp рдХрд╣рддреА рд╣реИред
  2. рдЬрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдбрд╛рд▓рддрд╛ рд╣реИ рдпрджрд┐ CanPlaceMonster() true ред
  3. рд╣рдо Instantiate рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдФрд░ рд░реЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рдкреНрд░реАрдлреИрдм рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо monsterPrefab рдирдХрд▓ monsterPrefab , рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдЧреЗрдо рдСрдмрдЬреЗрдХреНрдЯ рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреЛрдИ рд░реЛрдЯреЗрд╢рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдХреЛ GameObject рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ monster рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред
  4. рдЕрдВрдд рдореЗрдВ, рд╣рдо PlayOneShot рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ AudioSource рдШрдЯрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред

рдЕрдм рд╣рдорд╛рд░реА PlaceMonster рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдореЙрдиреНрд╕реНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдПрдХ PlaceMonster рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд░рд╛рдЗрдЯ рдкреНрд░реАрдлреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред

рдореЙрдиреНрд╕реНрдЯрд░рдкреНрд░реИрдм рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░реАрдлрд╝реИрдмреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдУрдкрдиреНрд╕рдкреЙрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВред

рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, PlaceMonster (Script) рдШрдЯрдХ рдХреЗ рдореЙрдиреНрд╕реНрдЯрд░ рдкреНрд░реАрдлрд╝реИрдм рдлрд╝реАрд▓реНрдб рдХреЗ рджрд╛рдИрдВ рдУрд░ рдХреЗ рдШреЗрд░реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ рдореЙрдиреНрд╕реНрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред


рд╡рд╣ рд╕рдм рд╣реИред рджреГрд╢реНрдп рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдорд╛рдЙрд╕ рдХреЛ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреВрдХрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕ рдмрдирд╛рдПрдВред


рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдо рд░рд╛рдХреНрд╖рд╕ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рдПрдХ рдЕрдЬреАрдм рдЧрдВрджрдЧреА рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЦреАрдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред

рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдПрдВ


рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕реНрддрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд░рд╛рдХреНрд╖рд╕ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рднрдпрд╛рд╡рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред


рдХреНрдпрд╛ рдкреНрдпрд╛рд░реА! рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЙрд╕рдХреА рдХреБрдХреАрдЬрд╝ рдЪреБрд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░рд╛рдХреНрд╖рд╕ рдПрдХ рд╣рддреНрдпрд╛рд░реЗ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред

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

рдЗрд╕ рд▓рд┐рдкрд┐ рдХреЛ рдЬреЛрдбрд╝реЗрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдкреНрд░реАрдлреИрдм / рдореЙрдиреНрд╕реНрдЯрд░ рдкреНрд░реАрдлреИрдм рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдПрдХ рдирдпрд╛ C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕реЗ MonsterData рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред IDE рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ MonsterData рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВред

 [System.Serializable] public class MonsterLevel { public int cost; public GameObject visualization; } 

рдЗрд╕рд▓рд┐рдП рд╣рдо MonsterLevel рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдореВрд▓реНрдп (рд╕реЛрдиреЗ рдореЗрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдиреАрдЪреЗ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ) рдФрд░ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╕реНрддрд░ рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо [System.Serializable] рд╢реАрд░реНрд╖ рдкрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рд╣рдореЗрдВ рд╕реНрддрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЦреЗрд▓ рдЪрд▓ рд░рд╣рд╛ рд╣реЛред рдпрд╣ рдЦреЗрд▓ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред

рд░рд╛рдХреНрд╖рд╕ рд╕реНрддрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ MonsterLevel рдХреЛ List<T> рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред

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


рдмрд╛рдЗрдХ рдХреЛ рд░реАрдЗрдирд╡реЗрдВрдЯ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

MonsterData.cs рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ , рдирд┐рд░реНрдорд╛рдг using рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:

 using System.Collections.Generic; 

рдпрд╣ рд╣рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ List<T> рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред

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

рдЕрдм MonsterLevel рд╕реВрдЪреА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП MonsterData рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 public List<MonsterLevel> levels; 

рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ level рд╕реЗ List рдХреЗрд╡рд▓ MonsterLevel рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдВрдЧреЗред

рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ Prefabs / Monster рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдЕрдм рдореЛрдВрд╕реНрдЯрд░рдбреЗрдЯрд╛ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдШрдЯрдХ рдХреЗ рд╕реНрддрд░ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдХрд╛рд░ 3 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред


рдЕрдЧрд▓рд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:

  • рддрддреНрд╡ реж : реирежреж
  • рддрддреНрд╡ рез : резрезреж
  • рддрддреНрд╡ реи : резреиреж

рдЕрдм рд╣рдо рд╡рд┐рдЬрд╝реБрдЕрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ Prefabs / Monster рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдмрдЪреНрдЪреЗ Monster0 рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рддрддреНрд╡ 0 рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЦреАрдВрдЪреЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, Element 1 рдХреЛ Monster1 , рдФрд░ Element 2 рд╕реЗ Monster2 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред GIF рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:


рдЬрдм рдЖрдк Prefabs / Monster рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реАрдлрд╝реИрдм рдХреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░реЗрдВ


IDE рдореЗрдВ MonsterData.cs рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ MonsterData рдореЗрдВ рдПрдХ рдФрд░ рдЪрд░ рдЬреЛрдбрд╝реЗрдВред

 private MonsterLevel currentLevel; 

рдирд┐рдЬреА рдЪрд░ currentLevel рд╣рдо рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред

рдЕрдм currentLevel рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдПрдВред MonsterData рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВ:

 //1 public MonsterLevel CurrentLevel { //2 get { return currentLevel; } //3 set { currentLevel = value; int currentLevelIndex = levels.IndexOf(currentLevel); GameObject levelVisualization = levels[currentLevelIndex].visualization; for (int i = 0; i < levels.Count; i++) { if (levelVisualization != null) { if (i == currentLevelIndex) { levels[i].visualization.SetActive(true); } else { levels[i].visualization.SetActive(false); } } } } } 

C # рдХреЛрдб рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛, рд╕рд╣реА? рдЖрдЗрдП рдЗрд╕реЗ рдХреНрд░рдо рдореЗрдВ рд▓реЗрдВ:

  1. рдирд┐рдЬреА рдЪрд░ currentLevel рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдХреЗ, рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЪрд░ рдХреА рддрд░рд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ CurrentLevel (рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░) рдпрд╛ monster.CurrentLevel рд░реВрдк рдореЗрдВред CurrentLevel (рдмрд╛рд╣рд░)ред рд╣рдо рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЧреЗрдЯреНрдЯрд░ рдпрд╛ рд╕реЗрдЯрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЧреЗрдЯреНрдЯрд░, рд╕реЗрдЯрд░ рдпрд╛ рджреЛрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ, рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓-рд▓рд┐рдЦрдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдПред
  2. рдЧреЗрдЯреНрдЯрд░ рдореЗрдВ, рд╣рдо currentLevel рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
  3. рд╕реЗрдЯрд░ рдореЗрдВ, рд╣рдо currentLevel рдирдпрд╛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕рднреА рд╕реНрддрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЗрдХрд┐рд▓ currentLevelIndex рдФрд░ currentLevelIndex рдЖрдзрд╛рд░ рдкрд░ рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм currentLevel рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЧреБрдг рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рд╣реИрдВ!

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд OnEnable рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝реЗрдВ:

 void OnEnable() { CurrentLevel = levels[0]; } 

рдпрд╣рд╛рдВ рд╣рдордиреЗ CurrentLevel рд╕реЗрдЯ CurrentLevel рд╕рдордп рд░рдЦрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдиреЛрдЯ : OnEnable рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ OnStart рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо OnEnable рддрд░реАрдХреЛрдВ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВред

OnEnable рдмрдирдиреЗ рдкрд░ (рдпрджрд┐ OnEnable рдХреЛ рд╕рдХреНрд╖рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛) OnEnable рдХреЛ рддреБрд░рдВрдд рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рджреГрд╢реНрдп рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рддрдХ OnStart рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдореЗрдВ рд░рд╛рдХреНрд╖рд╕ рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ OnEnable рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рд░рдЦреЗрдВ; рдЕрдм рд╡реЗ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рд╕рд╣реА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред


рд░рд╛рдХреНрд╖рд╕ рдЕрдкрдЧреНрд░реЗрдб


IDE рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ MonsterData рдореЗрдВ рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

 public MonsterLevel GetNextLevel() { int currentLevelIndex = levels.IndexOf (currentLevel); int maxLevelIndex = levels.Count - 1; if (currentLevelIndex < maxLevelIndex) { return levels[currentLevelIndex+1]; } else { return null; } } 

GetNextLevel рд╣рдореЗрдВ currentLevel рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдЗрдВрдбреЗрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИ; рдпрджрд┐ рд░рд╛рдХреНрд╖рд╕ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, null рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд░рд╛рдХреНрд╖рд╕ рдЕрдкрдЧреНрд░реЗрдб рд╕рдВрднрд╡ рд╣реИред

рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

 public void IncreaseLevel() { int currentLevelIndex = levels.IndexOf(currentLevel); if (currentLevelIndex < levels.Count - 1) { CurrentLevel = levels[currentLevelIndex + 1]; } } 

рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░ рдХрд┐ рдпрд╣ levels.Count - 1 рд╕реЗ рдХрдо рд╣реИ levels.Count - 1 ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ CurrentLevel рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ CurrentLevel ред

рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ IDE рдореЗрдВ PlaceMonster.cs рдкрд░ рд▓реМрдЯреЗрдВ ред рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

 private bool CanUpgradeMonster() { if (monster != null) { MonsterData monsterData = monster.GetComponent<MonsterData>(); MonsterLevel nextLevel = monsterData.GetNextLevel(); if (nextLevel != null) { return true; } } return false; } 

рдкрд╣рд▓реЗ рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рд╣реИ рдЬрд┐рд╕реЗ null рд╕рд╛рде monster рдЪрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рдЪ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ MonsterData рд╕реЗ рд╡рд░реНрддрдорд╛рди рд░рд╛рдХреНрд╖рд╕ рд╕реНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╣рдо GetNextLevel() рдХрд┐ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпрд╛ GetNextLevel() null рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдПрдХ рд╕реНрддрд░ рдХреА рд╡реГрджреНрдзрд┐ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рд╣рдо true рд▓реМрдЯрддреЗ true ; рдЕрдиреНрдпрдерд╛ false рд▓реМрдЯрддреЗ рд╣реИрдВред

рд╣рдо рд╕реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ


рдЙрдиреНрдирдпрди рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, else if рд╢рд╛рдЦрд╛ OnMouseUp else if рдЬреЛрдбрд╝реЗрдВ:

 if (CanPlaceMonster()) { //      } else if (CanUpgradeMonster()) { monster.GetComponent<MonsterData>().IncreaseLevel(); AudioSource audioSource = gameObject.GetComponent<AudioSource>(); audioSource.PlayOneShot(audioSource.clip); // TODO:   } 

рд╣рдо CanUpgradeMonster() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рд╣рдо GetComponent() рдФрд░ GetComponent() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MonsterData рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдореЙрдиреНрд╕реНрдЯрд░ рдСрдбрд┐рдпреЛ рд╕реЛрд░реНрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рдЧреЗрдо рдХреЛ рдЪрд▓рд╛рдПрдВ, рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдЙрдиреНрдирдд рдХрд░реЗрдВ рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ (рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП)ред


рдкреЗрдЗрдВрдЧ рдЧреЛрд▓реНрдб - рдЧреЗрдо рдореИрдиреЗрдЬрд░


рдЬрдмрдХрд┐ рд╣рдо рддреБрд░рдВрдд рдХрд┐рд╕реА рднреА рд░рд╛рдХреНрд╖рд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЦреЗрд▓ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛?

рд╕реЛрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреА рд╣реЛрдЧреАред

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╕рднреА рдЪрдпрдирд┐рдд рдЦреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рдХрд┐рддрдирд╛ рд╕реЛрдирд╛ рд╣реИред

рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИред

рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Create Empty рдЪреБрдиреЗрдВред рдирдИ GameManager рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджреЗрдВ ред

GameManagerBehavior рдирд╛рдордХ рдПрдХ рдирдИ C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ GameManager рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ , рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ IDE рдореЗрдВ рдЦреЛрд▓реЗрдВред рд╣рдо рд▓реЗрдмрд▓ рдореЗрдВ рдкреНрд▓реЗрдпрд░ рдЧреЛрд▓реНрдб рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:

 using UnityEngine.UI; 

рдпрд╣ рд╣рдореЗрдВ Text рдЬреИрд╕реЗ рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдирд┐рдореНрди рдЪрд░ рдХреЛ рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 public Text goldLabel; 

рдпрд╣ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рд╕реЛрдиреЗ рдХреА рдорд╛рддреНрд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ Text рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред

рдЕрдм рдЬрдм GameManager рдХреЛ рд▓реЗрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕реЛрдиреЗ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рд▓реЗрдмрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдореВрд▓реНрдп рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ? рд╣рдо рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдПрдВрдЧреЗред

GameManagerBehavior рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 private int gold; public int Gold { get { return gold; } set { gold = value; goldLabel.GetComponent<Text>().text = "GOLD: " + gold; } } 

рдХреНрдпрд╛ рд╡рд╣ рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ? рдХреЛрдб CurrentLevel рд╕рдорд╛рди рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо Monster рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╣рдо gold рдХреА рд╡рд░реНрддрдорд╛рди рдорд╛рддреНрд░рд╛ рдХреЛ рдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдЬреА рдЪрд░ gold рдмрдирд╛рддреЗ рд╣реИрдВред рддрдм рд╣рдо Gold рдкреНрд░реЙрдкрд░реНрдЯреА (рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ, рд╕рд╣реА?) рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЧреЗрдЯреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

рдкрд╛рдиреЗрд╡рд╛рд▓рд╛ рдмрд╕ gold рдХрд╛ рдореВрд▓реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕реЗрдЯрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ goldLabel рд▓рд┐рдП рдирдП рд╕реЛрдиреЗ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП text рдХреНрд╖реЗрддреНрд░ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдХрд┐рддрдиреЗ рдЙрджрд╛рд░ рд╣реЛрдВрдЧреЗ? рдпрджрд┐ рдЖрдк рдкреИрд╕реЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ 1000 рд╕реНрд╡рд░реНрдг, рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП Start() рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:

 Gold = 1000; 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд▓реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛


рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ, GameManager рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рдЧреЛрд▓реНрдб рд▓реЗрдмрд▓ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рд░реНрдХрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд╛рда рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, рджреГрд╢реНрдп рдЯреИрдм рдЪреБрдиреЗрдВ рдФрд░ рдЧреЛрд▓реНрдбрд▓реИрдм рдЪреБрдиреЗрдВред


рджреГрд╢реНрдп рдЪрд▓рд╛рдПрдВ рдФрд░ рд▓реЗрдмрд▓ рдЧреЛрд▓реНрдб: 1000 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред


рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ "рд╡реЙрд▓реЗрдЯ" рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


IDE рдореЗрдВ PlaceMonster.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 private GameManagerBehavior gameManager; 

рд╣рдо рджреГрд╢реНрдп рдореЗрдВ GameManagerBehavior рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ GameManagerBehavior рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gameManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ Start() :

 gameManager = GameObject.Find("GameManager").GetComponent<GameManagerBehavior>(); 

рд╣рдо GameObject.Find() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреЗрдо рдореИрдирдЬрд░ рдирд╛рдордХ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рдирд╛рдо рд╕реЗ рдорд┐рд▓реА рдкрд╣рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрд╕рдХреЗ рдШрдЯрдХ GameManagerBehavior рдкреНрд░рд╛рдкреНрдд GameManagerBehavior рдФрд░ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред

рдиреЛрдЯ : рдЖрдк рдпреВрдирд┐рдЯреА рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рд╕реЗрдЯ рдХрд░рдХреЗ рдпрд╛ GameManager рд▓рд┐рдП рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо GameManagerBehavior рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рдЕрдВрдзреЗрд░рд╛ рдШреЛрдбрд╝рд╛ рд╣реИ: рд╡рд┐рдзрд┐ Find , рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореЙрдбрд░реЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рдкреИрд╕реЗ рд▓реЗ рд▓реЛ!


рд╣рдордиреЗ рдЕрднреА рддрдХ рд╕реЛрдиреЗ рдХреЛ рдШрдЯрд╛рдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рджреЛ рдмрд╛рд░ OnMouseUp() , рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрдЧрд╣ // TODO: :

 gameManager.Gold -= monster.GetComponent<MonsterData>().CurrentLevel.cost; 

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


рдЕрдирдВрдд рд╢реНрд░реЗрдп? рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд╡рд░реНрдг рд╣реЛрдиреЗ рдкрд░ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рджрд╛рдВрд╡ рдкрд░ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЛрдиреЗ рдХреА рдЬрд╛рдБрдЪ


IDE рдореЗрдВ PlaceMonster.cs рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ CanPlaceMonster() рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 int cost = monsterPrefab.GetComponent<MonsterData>().levels[0].cost; return monster == null && gameManager.Gold >= cost; 

рд╣рдореЗрдВ рдЗрд╕рдХреЗ MonsterData рдореЗрдВ levels рд╕реЗ рд░рд╛рдХреНрд╖рд╕ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреА рдХреАрдордд MonsterData ред рдлрд┐рд░ рд╣рдо gameManager.Gold рдХрд┐ monster null рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╣ gameManager.Gold ред рдЗрд╕ рдХреАрдордд рд╕реЗ рдХрдИ gameManager.Gold рдЕрдзрд┐рдХ рд╣реИред

рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп: рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ CanUpgradeMonster() рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЛрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЕрдВрджрд░ рд╕рдорд╛рдзрд╛рди
рд▓рд╛рдЗрди рдмрджрд▓реЗрдВ:

 return true; 

рдЗрд╕ рдкрд░:

 return gameManager.Gold >= nextLevel.cost; 

рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рдЕрдкрдЧреНрд░реЗрдб рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рдЧреЛрд▓реНрдб рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдПрдХрддрд╛ рдореЗрдВ рджреГрд╢реНрдп рдХреЛ рдмрдЪрд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред рдЕрдм рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдХреИрд╕реЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ!


рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЯреЙрд╡рд░ рдиреАрддрд┐: рджреБрд╢реНрдорди, рд▓рд╣рд░реЗрдВ рдФрд░ рд░рд╛рд╕реНрддрд╛


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

рдЖрдк рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рджреБрд╢реНрдорди рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рдбрд╝рдХ рд╕реЗрдЯ рдХрд░реЗрдВ
  2. рджреБрд╢реНрдорди рдХреЛ рд╕рдбрд╝рдХ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд▓реЗ рдЬрд╛рдПрдВ
  3. рджреБрд╢реНрдорди рдХреЛ рдореЛрдбрд╝реЛ рддрд╛рдХрд┐ рд╡рд╣ рдЖрдЧреЗ рджрд┐рдЦреЗ

Waypoint рд╕реЗ рдПрдХ рд╕рдбрд╝рдХ рдмрдирд╛рдирд╛


рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Empty рдЪреБрдиреЗрдВред рдЗрд╕реЗ рд╕рдбрд╝рдХ рдХрд╛ рдирд╛рдо рджреЗрдВ рдФрд░ рдЗрд╕реЗ (0, 0, 0) рдкрд░ рд░рдЦреЗрдВ ред

рдЕрдм Hierarchy рдореЗрдВ рд░реЛрдб рдкрд░ рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд░реЛрдб рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рдЦрд╛рд▓реА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рдЗрд╕реЗ Waypoint0 рдирд╛рдо рджреЗрдВ рдФрд░ рдмрд┐рдВрджреБ (-12, 2, 0) рдкрд░ рд░рдЦреЗрдВ - рдпрд╣рд╛рдВ рд╕реЗ рджреБрд╢реНрдорди рдЕрдкрдиреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред


рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд╛рдореЛрдВ рдФрд░ рдкрджреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╛рдБрдЪ рдФрд░ рдорд╛рд░реНрдЧ рдмрд┐рдВрджреБ рдмрдирд╛рдПрдБ:

  • Waypoint1: (X: 7, Y: 2, Z: 0)
  • Waypoint2: (X: 7, Y: -1, Z: 0)
  • Waypoint3: (X: -7.3, Y: -1, Z: 0)
  • Waypoint4: (X: -7.3, Y: -4.5, Z: 0)
  • Waypoint5: (X: 7, Y: -4.5, Z: 0)

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдорд╛рд░реНрдЧ рдХреЗ рдмрд┐рдВрджреБ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рд░реНрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рд╢рддреНрд░реБ рдмрдирд╛рдирд╛


рдЕрдм рдХреБрдЫ рджреБрд╢реНрдорди рдкреИрджрд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рд╕рдбрд╝рдХ рдХреЗ рдХрд┐рдирд╛рд░реЗ-рдХрд┐рдирд╛рд░реЗ рдЪрд▓ рд╕рдХреЗрдВред Prefabs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╢рддреНрд░реБ prefab рд╣реИред рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ (-20, 0, 0) рд╣реИ , рдЗрд╕рд▓рд┐рдП рдирдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдСрдл-рд╕реНрдХреНрд░реАрди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдореЙрдиреНрд╕реНрдЯрд░ AudioSource рдореЗрдВ AudioSource рдФрд░ Sprite рдмрдЪреНрдЪрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдП рдмрд┐рдирд╛ рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЛ рд╕рдбрд╝рдХ рдкрд░ рдШреБрдорд╛рддреЗ рд╣реИрдВ


Prefabs \ Enemy prefab рдореЗрдВ MoveEnemy рдирд╛рдордХ рдПрдХ рдирдпрд╛ C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВред рдЖрдИрдбреАрдИ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 [HideInInspector] public GameObject[] waypoints; private int currentWaypoint = 0; private float lastWaypointSwitchTime; public float speed = 1.0f; 

[HideIn inspector ] , рд░реВрдЯ рдкреЙрдЗрдВрдЯреНрд╕ рдХреА рдПрдХ рдХреЙрдкреА рдПрд░реЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ [HideIn inspector ] рдКрдкрд░ [HideIn inspector ] рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╣рдо рдЧрд▓рддреА рд╕реЗ рдЗрд╕ рдлреАрд▓реНрдб рдХреЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рддрдХ рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред

currentWaypoint рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рд╕рдордп рдореЗрдВ рджреБрд╢реНрдорди рдХрд╛ рдорд╛рд░реНрдЧ рдХрд╣рд╛рдБ рд╕реЗ рд╣реИ, рдФрд░ lastWaypointSwitchTime рдЙрд╕ рд╕рдордп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рджреБрд╢реНрдорди рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рджреБрд╢реНрдорди рдХреА speed рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ Start() рдЬреЛрдбрд╝реЗрдВ:

 lastWaypointSwitchTime = Time.time; 

рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде lastWaypointSwitchTime рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ lastWaypointSwitchTime ред

рджреБрд╢реНрдорди рдХреЛ рдорд╛рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Update() рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ Update() :

 // 1 Vector3 startPosition = waypoints [currentWaypoint].transform.position; Vector3 endPosition = waypoints [currentWaypoint + 1].transform.position; // 2 float pathLength = Vector3.Distance (startPosition, endPosition); float totalTimeForPath = pathLength / speed; float currentTimeOnPath = Time.time - lastWaypointSwitchTime; gameObject.transform.position = Vector2.Lerp (startPosition, endPosition, currentTimeOnPath / totalTimeForPath); // 3 if (gameObject.transform.position.Equals(endPosition)) { if (currentWaypoint < waypoints.Length - 2) { // 3.a currentWaypoint++; lastWaypointSwitchTime = Time.time; // TODO:     } else { // 3.b Destroy(gameObject); AudioSource audioSource = gameObject.GetComponent<AudioSource>(); AudioSource.PlayClipAtPoint(audioSource.clip, transform.position); // TODO:   } } 

рдЪрд▓реЛ рдЪрд░рдг рджрд░ рдЪрд░рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:

  1. рд░реВрдЯ рдкреЙрдЗрдВрдЯреНрд╕ рдХреА рд╕рд░рдгреА рд╕реЗ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░реВрдЯ рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдХреА рд╕реНрдерд┐рддрд┐ рдорд┐рд▓рддреА рд╣реИред
  2. рд╣рдо рд╕реВрддреНрд░ рд╕рдордп = рджреВрд░реА / рдЧрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рджреВрд░реА рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдорд╛рд░реНрдЧ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред Vector2.Lerp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ Vector2.Lerp , рд╣рдо рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рд╕рдЯреАрдХ рдЦрдВрдб рдХреЗ рдмреАрдЪ рджреБрд╢реНрдорди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  3. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рджреБрд╢реНрдорди endPosition рддрдХ рдкрд╣реБрдВрдЪ endPosition ред рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рд╣рдо рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ:
    1. рджреБрд╢реНрдорди рдЕрднреА рддрдХ рдорд╛рд░реНрдЧ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП currentWaypoint рдХрд╛ рдорд╛рди currentWaypoint рдФрд░ currentWaypoint рдХреЛ рдЕрдкрдбреЗрдЯ lastWaypointSwitchTime ред рдмрд╛рдж рдореЗрдВ рд╣рдо рджреБрд╢реНрдорди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╡рд╣ рдЕрдкрдиреЗ рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджрд┐рдЦреЗред
    2. рджреБрд╢реНрдорди рдорд╛рд░реНрдЧ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдирд╖реНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рд╣рдо рдПрдХ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ health рдХрдо рдХрд░реЗрдЧрд╛ред

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред

рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреЗ рд╣реИрдВ


рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдорд╛рд░реНрдЧ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдХреНрд░рдо рдирд╣реАрдВ рдкрддрд╛ рд╣реИред

рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╕рдбрд╝рдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдИ C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕реЗ SpawnEnemy рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ IDE рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 public GameObject[] waypoints; 

рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдХреНрд░рдо рдореЗрдВ рджреГрд╢реНрдп рдореЗрдВ рд╡реЗрдирдкреЙрдЗрдВрдЯ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП waypoints рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╕рдбрд╝рдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╡реЗрдкрд╛рдЗрдиреНрд╕ рд╕рд░рдгреА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 6 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

рддрддреНрд╡ 0 рдореЗрдВ Waypoint0 , рддрддреНрд╡ 1 рдореЗрдВ Waypoint1 рдХреЛ рдЪрд┐рдкрдХрд╛рдХрд░, рд╕рдбрд╝рдХ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЦреЗрддреЛрдВ рдореЗрдВ рдЦреАрдВрдЪреЗрдВред


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдорд╛рд░реНрдЧ рдмрд┐рдВрджреБ рд╣реИрдВ - рдЖрдк рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рджреБрд╢реНрдорди рдХрднреА рднреА рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯрддреЗ рд╣реИрдВ, рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдорд┐рдард╛рдИ рдЗрдирд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


IDE рдореЗрдВ SpawnEnemy рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 public GameObject testEnemyPrefab; 

рдпрд╣ рд╢рддреНрд░реБ testEnemyPrefab рд╕рдВрджрд░реНрдн рдХреЛ testEnemyPrefab рдореЗрдВ testEnemyPrefab ред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рджреБрд╢реНрдорди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Start() рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ Start() :

 Instantiate(testEnemyPrefab).GetComponent<MoveEnemy>().waypoints = waypoints; 

рдЗрд╕рд▓рд┐рдП рд╣рдо testEnemy рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд testEnemy рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐ testEnemy рдФрд░ рдЗрд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗред

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд░реЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рд╢рддреНрд░реБ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рд╢рддреНрд░реБ prefab рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рджреБрд╢реНрдорди рд╕рдбрд╝рдХ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЪрд▓рддрд╛ рд╣реИ (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП GIF рдореЗрдВ, рдЧрддрд┐ 20 рдЧреБрдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ)ред


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

рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?


рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдирд╛ рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдЦреЗрд▓ рдмрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред

рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреБрд╢реНрдорди рд╕рдбрд╝рдХ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдХреБрдХреА рдХреА рдУрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рд╕реЛрдирд╛ рд╣реИ рдФрд░ рд╡реЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдЙрдиреНрдирдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддреИрдпрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред

рдореЗрдВ рджреВрд╕рд░реЗ рднрд╛рдЧ рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рд▓рд╣рд░реЛрдВ рдмрдирд╛рдиреЗ рдХреЛ рджреЗрдЦреЛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред рдЬрд▓реНрдж рдорд┐рд▓рддреЗ рд╣реИрдВ!

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


All Articles