рдпрд╣ 
"рдПрдХрддрд╛ рдореЗрдВ рдПрдХ рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдЦреЗрд▓ рдмрдирд╛рдирд╛" рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рджреВрд╕рд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд╣рдо рдПрдХрддрд╛ рдореЗрдВ рдПрдХ рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рд╢реИрд▓реА рдЦреЗрд▓ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ 
рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдЕрдВрдд рддрдХ, рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдХреИрд╕реЗ рдЙрдиреНрдирдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреБрд╢реНрдорди рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреБрдХреАрдЬрд╝ рднреА рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреБрд╢реНрдорди рдЕрднреА рддрдХ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдХреЗрд▓реЗ рдПрдХ рд╣рдорд▓рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдФрд░ рдЖрд░реНрдо рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреА рддрд░рдВрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рдХреАрдорддреА рдХреБрдХреА рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░ рд╕рдХреЗрдВред
рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛
рдПрдХрддрд╛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓реЗрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдЕрднреА рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рд╣реБрдП рд╣реИрдВ, рддреЛ 
рдбреНрд░рд╛рдлреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ 
рдЯреЙрд╡рд░рдбрд┐рдлреЗрдВрд╕-рдкрд╛рд░реНрдЯ 2-рд╕реНрдЯрд╛рд░реНрдЯрд░ рдЦреЛрд▓реЗрдВред
рджреГрд╢реНрдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ 
GameScene рдЦреЛрд▓реЗрдВред
рджреБрд╢реНрдордиреЛрдВ рдХреА рдмрд╛рд░реА
рдкрд┐рдЫрд▓реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, рджреБрд╢реНрдорди рдиреЗ рд╕рдбрд╝рдХ рдкрд░ рдЪрд▓рдирд╛ рд╕реАрдЦрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИред
IDE рдореЗрдВ 
MoveEnemy.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВред
private void RotateIntoMoveDirection() {  
RotateIntoMoveDirection рджреБрд╢реНрдорди рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ рд╣рдореЗрд╢рд╛ рдЖрдЧреЗ 
RotateIntoMoveDirection ред рд╡рд╣ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░рддрд╛ рд╣реИ:
- рдмрдЧ рдХреА рд╡рд░реНрддрдорд╛рди рджрд┐рд╢рд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдмрд┐рдВрджреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдШрдЯрд╛рддрд╛ рд╣реИред
- рд░реЗрдбрд┐рдпрди рдореЗрдВ рдХреЛрдг рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Mathf.Atan2рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВnewDirectionрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИ (рд╢реВрдиреНрдп рдмрд┐рдВрджреБ рджрд╛рдИрдВ рдУрд░ рд╣реИ)ред рдкрд░рд┐рдгрд╛рдо рдХреЛ180 / Mathf.PIрдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдг рдХреЛ рдбрд┐рдЧреНрд░реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдЪреНрдЪрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдХреНрд╖ рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИред rotationAngleрдбрд┐рдЧреНрд░реАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдмрдЪреНрдЪреЗ рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдирд╣реАрдВ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЬреЛ рдКрд░реНрдЬрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рд╡рд╣ рдХреНрд╖реИрддрд┐рдЬ рдмрдиреА рд░рд╣реЗред
Update() , рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдмрджрд▓реЗрдВ 
// TODO: рдЕрдЧрд▓реЗ рдХреЙрд▓ рдХреЗ 
// TODO: RotateIntoMoveDirection :
 RotateIntoMoveDirection(); 
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВ; рдЕрдм рджреБрд╢реНрдорди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд╣рд╛рдБ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдЕрдм рдмрдЧ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд╣рд╛рдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рджреБрд╢реНрдорди рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рд╣рдореЗрдВ рднреАрдбрд╝ рдЪрд╛рд╣рд┐рдП! рдФрд░ рдХрд┐рд╕реА рднреА рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдЦреЗрд▓ рдХреА рддрд░рд╣, рд▓рд╣рд░реЛрдВ рдореЗрдВ рднреАрдбрд╝ рдЪрд▓рддреА рд╣реИ!
рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рднреАрдбрд╝ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЖрд╕рдиреНрди рд▓рдбрд╝рд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╡рд░реНрддрдорд╛рди рд▓рд╣рд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдХрдИ GameObjects рджреНрд╡рд╛рд░рд╛ 
рд╡реЗрд╡ рдЬрд╛рдирдХрд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ 
GameManagerBehavior рдШрдЯрдХ рдХреЗ 
GameManager рдореЗрдВ рдЬреЛрдбрд╝ 
рджреЗрдВрдЧреЗ ред
IDE рдореЗрдВ 
GameManagerBehavior.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public Text waveLabel; public GameObject[] nextWaveLabels; 
waveLabel рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рддрд░рдВрдЧ рд╕рдВрдЦреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред 
nextWaveLabels рджреЛ 
nextWaveLabels рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рдирдИ рд▓рд╣рд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдЦрд╛рдПрдВрдЧреЗ:
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
GameManager рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред 
рд╡реЗрд╡ рд▓реЗрдмрд▓ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд╕рд░реНрдХрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ 
рдкрд╛рда рдХрд╛ 
рдЪрдпрди рдХрд░реЗрдВ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, 
рджреГрд╢реНрдп рдЯреИрдм рд╕реЗ 
WaveLabel рдЪреБрдиреЗрдВред
рдЕрдм 
рдиреЗрдХреНрд╕реНрдЯ рд╡реЗрд╡ рд▓реЗрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП 
рд╕рд╛рдЗрдЬ 2 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдм 
Element 0 рдХреЛ 
NextWaveBottomLabel рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ 
рддрддреНрд╡ 1 NextWaveTopLabel рдХреЗ рд▓рд┐рдП рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд╣рдордиреЗ рд╡реЗрд╡ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЧреЗрдо рдореИрдиреЗрдЬрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдм рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПрдпрджрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдЧрд▓реА рд▓рд╣рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, 
GameManagerBehavior.cs рдкрд░ рд╡рд╛рдкрд╕ 
рд▓реМрдЯреЗрдВ рдФрд░ рдПрдХ рдЕрдиреНрдп рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public bool gameOver = false; 
gameOver рд╣рдо рдЙрд╕ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣рд╛рд░ рдЧрдпрд╛ред
рдпрд╣рд╛рдВ рд╣рдо рд╡рд░реНрддрдорд╛рди рддрд░рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред 
GameManagerBehavior рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
 private int wave; public int Wave { get { return wave; } set { wave = value; if (!gameOver) { for (int i = 0; i < nextWaveLabels.Length; i++) { nextWaveLabels[i].GetComponent<Animator>().SetTrigger("nextWave"); } } waveLabel.text = "WAVE: " + (wave + 1); } } 
рдПрдХ рдирд┐рдЬреА рдЪрд░, рд╕рдВрдкрддреНрддрд┐, рдФрд░ рдЧреЗрдЯрдЯрд░ рдмрдирд╛рдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдЪреАрдЬ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕реЗрдЯрд░ рдХреЗ рд╕рд╛рде, рдлрд┐рд░ рд╕реЗ, рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рд╣рдо 
wave рдирдпрд╛ 
value ред
рдлрд┐рд░ рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕рднреА 
рдЕрдЧрд▓реЗ рд╡реЙрд▓реНрд╡ рд▓реЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░реЗрдВ - рдЗрди рд▓реЗрдмрд▓ рдореЗрдВ рдПрдХ 
рдПрдирд┐рдореЗрдЯрд░ рдШрдЯрдХ рд╣реИред 
рдРрдирд┐рдореЗрдЯрд░ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ 
рдиреЗрдХреНрд╕реНрдЯ рдЯреНрд░рд┐рдЧрд░ 
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ 
рд╣реИрдВ ред
рдЕрдВрдд рдореЗрдВ, рд╣рдо 
wave + 1 waveLabel рдХрд╛ 
text рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ 
+1 ? рд╕рд╛рдзрд╛рд░рдг рд▓реЛрдЧ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЧрд┐рдирддреА рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╣рд╛рдБ, рдпрд╣ рдЕрдЬреАрдм рд╣реИ)ред
Start() рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 Wave = 0; 
рд╣рдо рд╕рдВрдЦреНрдпрд╛ 
0 Wave рд╕рд╛рде рдЧрд┐рдирддреА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рджреГрд╢реНрдп рдЪрд▓рд╛рдПрдБред рд╡реЗрд╡ рд▓реЗрдмрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ 1 рджрд┐рдЦрд╛рдПрдЧрд╛ред
рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рд▓рд╣рд░ 1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИредрд▓рд╣рд░реЗрдВ: рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдвреЗрд░ рдмрдирд╛рдПрдБ
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рднреАрдбрд╝ рдХреЗ рд╕рд╛рде рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рджреБрд╢реНрдорди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЬрдмрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЕрдЧрд▓реА рд▓рд╣рд░ рддрдм рддрдХ рдирд╣реАрдВ рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд╖реНрдЯ рди рд╣реЛ рдЬрд╛рдПред
рдпрд╣реА рд╣реИ, рдЦреЗрд▓ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рджреБрд╢реНрдордиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ 
рдЯреИрдЧ рдпрд╣рд╛рдВ рдЦреЗрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред
рд╢рддреНрд░реБ рдЯреИрдЧрд┐рдВрдЧ
Project Browser рдореЗрдВ 
Enem prefab рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, 
рдЯреИрдЧ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ 
рдРрдб рдЯреИрдЧ рдЪреБрдиреЗрдВред
рд╢рддреНрд░реБ рдирд╛рдордХ рдПрдХ 
рдЯреИрдЧ рдмрдирд╛рдПрдВред
Prefab 
рд╢рддреНрд░реБ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП 
рд╢рддреНрд░реБ рдЯреИрдЧ рд╕реЗрдЯ 
рдХрд░реЗрдВ ред
рджреБрд╢реНрдордиреЛрдВ рдХреА рд▓рд╣рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдЕрдм рд╣рдореЗрдВ рджреБрд╢реНрдордиреЛрдВ рдХреА рд▓рд╣рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред IDE рдореЗрдВ 
SpawnEnemy.cs рдЦреЛрд▓реЗрдВ рдФрд░ 
SpawnEnemy рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрди рд╡рд░реНрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝реЗрдВ:
 [System.Serializable] public class Wave { public GameObject enemyPrefab; public float spawnInterval = 2; public int maxEnemies = 20; } 
рд╡реЗрд╡ рдореЗрдВ 
enemyPrefab рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕ рд▓рд╣рд░ рдореЗрдВ рд╕рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдЖрдзрд╛рд░, 
spawnInterval - рд╕реЗрдХрдВрдб рдФрд░ 
maxEnemies рдореЗрдВ рджреБрд╢реНрдордиреЛрдВ рдореЗрдВ рд▓рд╣рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордп - рдЗрд╕ рд▓рд╣рд░ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рджреБрд╢реНрдордиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рд╡рд░реНрдЧ 
Serializable рд╣реИ , 
рдЕрд░реНрдерд╛рддреН , рд╣рдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдХреЛ 
SpawnEnemy рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 public Wave[] waves; public int timeBetweenWaves = 5; private GameManagerBehavior gameManager; private float lastSpawnTime; private int enemiesSpawned = 0; 
рдпрд╣рд╛рдВ рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЬрдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдорд╛рд░реНрдЧ рдкрд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рджреБрд╢реНрдордиреЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреБрд╢реНрдордиреЛрдВ рдХреА рд▓рд╣рд░реЛрдВ рдХреЛ рддрд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреБрд╢реНрдордиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВред
рдЗрди рд╕рднреА рдорд╛рд░ рдХреЗ рдмрд╛рдж, рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдВрд╕ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП 5 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реЗрдЯ рдХрд░реЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ 
Start() рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓реЗрдВред
 lastSpawnTime = Time.time; gameManager = GameObject.Find("GameManager").GetComponent<GameManagerBehavior>(); 
рдпрд╣рд╛рдВ рд╣рдо 
lastSpawnTime рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, 
lastSpawnTime , рджреГрд╢реНрдп рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордпред рддреЛ рдлрд┐рд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд 
GameManagerBehavior рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
Update() рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ 
Update() :
 
рдЖрдЗрдП рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд░рдг рджрд░ рдЪрд░рдг рдХрд░реЗрдВ:
- рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рддрд░рдВрдЧ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдВрддрд┐рдо рд╣реИред
- рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╣рдо рдкрд┐рдЫрд▓реЗ рджреБрд╢реНрдорди рд╕реНрдкреЙрди рдХреЗ рдмрд╛рдж рдмреАрддреЗ рд╣реБрдП рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджреБрд╢реНрдорди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд▓рд╣рд░ рдореЗрдВ рдкрд╣рд▓рд╛ рджреБрд╢реНрдорди рд╣реИ, рддреЛ рд╣рдо timeBetweenWavesрдХрд┐ рдХреНрдпрд╛timeBetweenWavesрд╕реЗtimeIntervalрд╣реИред рдЕрдиреНрдпрдерд╛, рд╣рдоspawnIntervalрдХрд┐ рдХреНрдпрд╛spawnIntervalрддрд░рдВрдЧреЛрдВ рд╕реЗtimeIntervalрд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд▓рд╣рд░ рдореЗрдВ рд╕рднреА рджреБрд╢реНрдорди рдирд╣реАрдВ рдмрдирд╛рдП рд╣реИрдВред
- рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рджреБрд╢реНрдорди рдХреЛ рд╕реНрдкреЙрди рдХрд░реЗрдВ, рджреБрд╢реНрдорди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реБрдП enemyPrefabред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛enemiesSpawnedрдХреЗ рдореВрд▓реНрдп рдореЗрдВenemiesSpawnedред
- рд╕реНрдХреНрд░реАрди рдкрд░ рджреБрд╢реНрдордиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдпрджрд┐ рд╡реЗ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд▓рд╣рд░ рдореЗрдВ рдпрд╣ рдЖрдЦрд┐рд░реА рджреБрд╢реНрдорди рдерд╛, рддреЛ рд╣рдо рдЕрдЧрд▓реА рд▓рд╣рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд▓рд╣рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╢реЗрд╖ рд╕рднреА рд╕реНрд╡рд░реНрдг рдХрд╛ 10 рдкреНрд░рддрд┐рд╢рдд рджреЗрддреЗ рд╣реИрдВред
- рдЖрдЦрд┐рд░реА рд▓рд╣рд░ рдХреЛ рд╣рд░рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЦреЗрд▓ рдореЗрдВ рдЬреАрдд рдХрд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдпрд╣рд╛рдВ рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреЙрди рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░рдирд╛
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рд░реЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рд╡реЗрд╡реНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ 
рдЖрдХрд╛рд░ 4 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЕрднреА рдХреЗ рд▓рд┐рдП, 
рд╢рддреНрд░реБ Prefab рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рдЪрд╛рд░ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ 
рд╢рддреНрд░реБ рд╡рд╕реНрддреБ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдирд┐рдореНрди рдХреЗ рд░реВрдк рдореЗрдВ 
рд╕реНрдкреЙрди рдЕрдВрддрд░рд╛рд▓ рдФрд░ 
рдЕрдзрд┐рдХрддрдо рд╢рддреНрд░реБ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
- рддрддреНрд╡ 0 : рд╕реНрдкреЙрди рдЗрдВрдЯрд░рд╡рд▓: 2.5 , рдЕрдзрд┐рдХрддрдо рд╢рддреНрд░реБ: 5
- рддрддреНрд╡ 1 : рд╕реНрдкреЙрди рдЗрдВрдЯрд░рд╡рд▓: 2 , рдореИрдХреНрд╕ рджреБрд╢реНрдорди: 10
- рддрддреНрд╡ 2 : рд╕реНрдкреЙрди рдЗрдВрдЯрд░рд╡рд▓: 2 , рдореИрдХреНрд╕ рджреБрд╢реНрдорди: 15
- рддрддреНрд╡ 3 : рд╕реНрдкреЙрди рдЕрдВрддрд░рд╛рд▓: 1 , рдЕрдзрд┐рдХрддрдо рд╢рддреНрд░реБ: 5
рд╕рдорд╛рдкреНрдд рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:
рдмреЗрд╢рдХ, рдЖрдк рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдЕрд╣рд╛! рдмреАрдЯрд▓ рдиреЗ рдЖрдкрдХреА рдХреБрдХреА рдХреА рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рдХрд░ рджреА рд╣реИ!
рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп: рджреБрд╢реНрдордиреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ
рдХрд┐рд╕реА рднреА рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдЦреЗрд▓ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреБрд╢реНрдорди рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, 
Prefabs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 
Enemy2 рднреА рд╣реИред
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, Prefabs \ Enemy2 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ 
MoveEnemy рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВред 
рдЧрддрд┐ 3 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ 
рдФрд░ рд╢рддреНрд░реБ рдЯреИрдЧ рд╕реЗрдЯ 
рдХрд░реЗрдВ ред рдЕрдм рдЖрдк рдЗрд╕ рддреНрд╡рд░рд┐рдд рджреБрд╢реНрдорди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЖрд░рд╛рдо рди рдХрд░реЗ!
рдкреНрд▓реЗрдпрд░ рд▓рд╛рдЗрдл рдЕрдкрдбреЗрдЯ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдЧрд┐рд░реЛрд╣ рдХреБрдХреА рдкрд░ рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдиреБрдХрд╕рд╛рди рдЙрдард╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЕрдЧрд░ рд╡рд╣ рджреБрд╢реНрдорди рдХреЛ рдЪреБрдкрдХреЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
IDE рдореЗрдВ 
GameManagerBehavior.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public Text healthLabel; public GameObject[] healthIndicator; 
рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЬреАрд╡рди рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 
healthLabel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдХреАрдЬрд╝ рдХреЛ рдЪрдмрд╛рддреЗ рд╣реБрдП рдкрд╛рдБрдЪ рдЫреЛрдЯреЗ рд╣рд░реЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рд╕реНрдереНрдпрд╡рд░реНрдзрдХ - рд╡реЗ рдмрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкреНрд░рддреАрдХ рд╣реИрдВ; рдпрд╣ рдПрдХ рдорд╛рдирдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдХреЗрддрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдордЬреЗрджрд╛рд░ рд╣реИред
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкреНрд░рдмрдВрдзрди
рдЕрдм 
GameManagerBehavior рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
 private int health; public int Health { get { return health; } set {  
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░, рдХреЛрдб рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╕реЗрдЯрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ:
- рдпрджрд┐ рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рд╕реБрдВрджрд░ рдЭрдЯрдХреЛрдВ рдХреЛ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CameraShakeрдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рд╣рдо рдпрд╣рд╛рдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
- рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдирд┐рдЬреА рдЪрд░ рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд▓реЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
- рдпрджрд┐ рд╕реНрд╡рд╛рд╕реНрдереНрдп 0 рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЦреЗрд▓ рдХрд╛ рдЕрдВрдд рдЕрднреА рддрдХ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ, рддреЛ gameOverрдХреЛtruegameOverрдФрд░gameOverрдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВред
- рд╣рдо рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕реЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рднрд╛рдЧ рдЖрд╕рд╛рди рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╣рдо рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ 
Health рдХреЛ 
Start() :
 Health = 5; 
рд╣рдо 
Health рдХреЛ 
5 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рджреГрд╢реНрдп рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдм рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдмрдЧ рдХреБрдХреА рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ IDE рдХреЛ 
MoveEnemy.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЬрд╛рдПрдВред
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ рдмрджрд▓рд╛рд╡
рдЕрдкрдиреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, 
Update() рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА 
Update() рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде 
// TODO: рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:
 GameManagerBehavior gameManager = GameObject.Find("GameManager").GetComponent<GameManagerBehavior>(); gameManager.Health -= 1; 
рдЗрд╕рд▓рд┐рдП рд╣рдо 
GameManagerBehavior рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпреВрдирд┐рдЯ рдХреЛ рдЙрд╕рдХреЗ 
Health рд╕реЗ рдШрдЯрд╛рддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХ 
GameManager рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХреЗ 
Health рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП 
HealthLabel рдЪреБрдиреЗрдВред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рдХреБрдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рдВрдЪ рдмрдЪреНрдЪреЗ 
HealthIndicators рдХреЛ 
GameManager рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдХреЗрддрдХ рд╕рд░рдгреА рдореЗрдВ рдЦреАрдВрдЪреЗрдВ - рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдХреЗрддрдХ рдХреБрдХреАрдЬрд╝ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рд╣рд░реЗ рд░рд╛рдХреНрд╖рд╕ рд╣реЛрдВрдЧреЗред
рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдХреАрдбрд╝реЗ рдХреБрдХреА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗред рд╣рд╛рд░рдиреЗ рддрдХ рдХреБрдЫ рди рдХрд░реЗрдВред
рд░рд╛рдХреНрд╖рд╕ рдмрджрд▓рд╛
рдЬрдЧрд╣ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕? рд╣рд╛рдВред рдХреНрдпрд╛ рджреБрд╢реНрдорди рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ? рд╣рд╛рдБ, рдФрд░ рд╡реЗ menacing рджрд┐рдЦрддреЗ рд╣реИрдВ! рдЗрди рдЬрд╛рдирд╡рд░реЛрдВ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ!
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рд▓реЗрди рддрд╛рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рджреБрд╢реНрдорди рдордЬрдмреВрдд рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдХрдордЬреЛрд░ рд╣реИрдВ
- рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рджреБрд╢реНрдордиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛
- рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ - рдХрд┐рд╕ рджреБрд╢реНрдорди рдкрд░ рдЧреЛрд▓реА рдЪрд▓рд╛рдирд╛ рд╣реИ
- рдЧреЛрд▓реЗ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛
рд╢рддреНрд░реБ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдмреИрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рдЕрдВрдзреЗрд░реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ (рд╣рд░реЗ рд░рдВрдЧ рдХреА рдкрдЯреНрдЯреА рдереЛрдбрд╝реА рдЫреЛрдЯреА рд╣реИ) рд╣рдо рджреБрд╢реНрдорди рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВрдЧреЗред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ 
Prefabs \ Enemy рджреГрд╢реНрдп рдкрд░ рдЦреАрдВрдЪреЗрдВред
рддрдм 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ, рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 
рджреБрд╢реНрдорди рдкрд░ 
Images \ Objects \ HealthBarBackground рдХреЛ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВред
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, HealthBarBackground (0, 1, -4) рдХреА 
рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
рдлрд┐рд░ 
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, Images \ Objects \ HealthBar рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдХреА 
рдзреБрд░реА рдмрд╛рдПрдБ рд╣реИ ред рдлрд┐рд░ рдЗрд╕реЗ 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рд╢рддреНрд░реБ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕рдХреА 
рд╕реНрдерд┐рддрд┐ рдорд╛рди 
(-0.63, 1, -5) рд╕реЗрдЯ рдХрд░реЗрдВ ред 
X рд╕реНрдХреЗрд▓ рдХреЗ рд▓рд┐рдП, рдорд╛рди рдХреЛ 
125 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
HealthBar рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ 
рдореЗрдВ HealthBar рдирд╛рдордХ рдПрдХ рдирдпрд╛ 
C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВред рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдмрджрд▓ рджреЗред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рд╢рддреНрд░реБ рд╡рд╕реНрддреБ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ 
(20, 0, 0) рд╣реИ ред
рдкреНрд░реАрдлрд╝реИрдм рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ 
рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ 
рдХрд░реЗрдВ ред рдЕрдВрдд рдореЗрдВ, 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рд╢рддреНрд░реБ рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдЕрдм 
Prefabs \ Enemy2 рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдХреА рд▓рдВрдмрд╛рдИ рдмрджрд▓реЗрдВ
IDE 
HealthBar.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public float maxHealth = 100; public float currentHealth = 100; private float originalScale; 
рдЕрдзрд┐рдХрддрдо рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ рджреБрд╢реНрдорди рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ 
currentHealth рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ - рд╢реЗрд╖ рд╕реНрд╡рд╛рд╕реНрдереНрдпред рдЕрдВрдд рдореЗрдВ, рдУрд░рд┐рдЬрд┐рдирд▓рд╕реНрдХреЗрд▓ рдореЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдХрд╛рд░ рд╣реИред
originalScale рд╡рд╕реНрддреБ рдХреЛ 
Start() рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ 
Start() :
 originalScale = gameObject.transform.localScale.x; 
рд╣рдо 
localScale рдЧреБрдг рдХрд╛ 
x рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
Update() рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝рдХрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рдХрд╛ рдкреИрдорд╛рдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ 
Update() :
 Vector3 tmpScale = gameObject.transform.localScale; tmpScale.x = currentHealth / maxHealth * originalScale; gameObject.transform.localScale = tmpScale; 
рд╣рдо 
localScale рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ 
x рдорд╛рди рдЕрд▓рдЧ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рдлрд┐рд░ рд╣рдо рдмреАрдЯрд▓ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдП 
рдПрдХреНрд╕- рд╕реНрдХреЗрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ 
localScale рдЪрд░ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рд╢рддреНрд░реБрдУрдВ рдкрд░ рдЖрдкрдХреЛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рд▓рдХреАрд░реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАред
рдЬрдмрдХрд┐ рдЦреЗрд▓ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, 
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ 
рд╢рддреНрд░реБ (рдХреНрд▓реЛрди) рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрдЪреНрдЪреЗ 
HealthBar рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЗрд╕рдХрд╛ 
рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореВрд▓реНрдп рдмрджрд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдмрд╛рд░ рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред
рд░реЗрдВрдЬ рдХреЗ рднреАрддрд░ рджреБрд╢реНрдордиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ
рдЕрдм рд╣рдорд╛рд░реЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдирд┐рд╢рд╛рдирд╛ рдмрдирд╛рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдореЙрдиреНрд╕реНрдЯрд░ рдФрд░ рджреБрд╢реНрдорди рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ 
рдкреНрд░реАрдлреИрдмреНрд╕ \ рдореЙрдиреНрд╕реНрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ 
рд╕рд░реНрдХрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ 2 рдбреА рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред
рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЗ 
рд░реЗрдбрд┐рдпрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 
2.5 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ - рдпрд╣ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рд╣рдорд▓реЗ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред
рдЯреНрд░рд┐рдЧреЗрд░ рдЪреЗрдХ рдмреЙрдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд╕реНрддреБрдПрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕рд╕реЗ рдЯрдХрд░рд╛рдПрдВред
рдЕрдВрдд рдореЗрдВ, 
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, 
рд░реЗрдпрд╕реНрдЯрд░ рдХреЛ 
рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдиреНрд╕реНрдЯрд░ рдХреА 
рдкрд░рдд рд╕реЗрдЯ 
рдХрд░реЗрдВ ред рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, 
рд╣рд╛рдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ 
, рдмрдЪреНрдЪреЛрдВ рдХреЛ рдмрджрд▓реЗрдВ ред рдпрджрд┐ рдЗрдЧреНрдиреЛрд░ рд░рд╛рдпрдХрд╛рд╕реНрдЯ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрд▓рд╛рдЗрдбрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рд░рд╛рдХреНрд╖рд╕ рдмреНрд▓реЙрдХ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрдирдХреЗ рдиреАрдЪреЗ рдУрдкрдиреНрд╕рдкреЙрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рджреБрд╢реНрдорди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдПрдХ рдХреЛрд▓рд╛рдЗрдбрд░ рдФрд░ рдПрдХ рдХрдареЛрд░ рд╢рд░реАрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХрддрд╛ рдХреЗрд╡рд▓ рдЯреНрд░рд┐рдЧрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬрддреА рд╣реИ рдЬрдм рдПрдХ рдХрдареЛрд░ рд╢рд░реАрд░ рдХреЛ рдХрд┐рд╕реА рдПрдХ рдХреЛрд▓рд╛рдЗрдбрд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, Prefabs \ Enemy рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред 
Rigidbody 2D рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ 
рдмреЙрдбреА рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП 
рдХрд╛рдЗрдиреЗрдореИрдЯрд┐рдХ рдЪреБрдиреЗрдВ ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╢рд░реАрд░ рднреМрддрд┐рдХреА рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
1 рдХреЗ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╕рд╛рде 
рд╕рд░реНрдХрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ 2 рдбреА рдЬреЛрдбрд╝реЗрдВред 
Prefabs \ Enemy 2 рдХреЗ рд▓рд┐рдП рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред
рдЯреНрд░рд┐рдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд░рд╛рдХреНрд╖рд╕ рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рджреБрд╢реНрдорди рдЙрдирдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИрдВред
рд╣рдореЗрдВ рдПрдХ рдФрд░ рдЪреАрдЬ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдЬрдм рджреБрд╢реНрдорди рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЖрдЧ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП рдЕрдкрд╡рд╛рдж рди рдЙрдард╛рдПрдВред
EnemyDestructionDelegate рдирд╛рдордХ рдПрдХ рдирдИ 
C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ 
рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ 
рджреБрд╢реНрдорди рдФрд░ 
Enemy2 рдкреНрд░реАрдлреИрдмреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред
рдЖрдИрдбреАрдИ рдореЗрдВ 
EnemyDestructionDelegate.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдШреЛрд╖рдгрд╛ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
 public delegate void EnemyDelegate (GameObject enemy); public EnemyDelegate enemyDelegate; 
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ 
delegate рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдиреЛрдЯ : рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреНрдп рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХрддрд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
 void OnDestroy() { if (enemyDelegate != null) { enemyDelegate(gameObject); } } 
рдЬрдм рдХреЛрдИ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ 
null рдЕрд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП 
null рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕реЗ 
gameObject рд╕рд╛рде рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╕рднреА рдЙрддреНрддрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рджреБрд╢реНрдорди рдирд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВред
рд╣рдо рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдорд╛рд░рдиреЗ рдХрд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджреЗрддреЗ рд╣реИрдВ
рдФрд░ рдЕрдм рд░рд╛рдХреНрд╖рд╕ рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рджреБрд╢реНрдордиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред 
рдореЙрдиреНрд╕реНрдЯрд░ рдкреНрд░реАрдлрд╝реИрдм рдореЗрдВ рдПрдХ рдирдИ 
C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ 
рд╢реВрдЯ рдХрд░реЗрдВ ред
OpenEnemy.cs рдХреЛ IDE рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ 
Generics рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд╛ 
using рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВред
 using System.Collections.Generic; 
рд░реЗрдВрдЬ рдХреЗ рднреАрддрд░ рд╕рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public List<GameObject> enemiesInRange; 
рджреБрд╢реНрдордиреЛрдВ рдореЗрдВ рд╣рдо рд░реЗрдВрдЬ рдореЗрдВ рд╕рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рд╛рд░рдВрдн 
Start() рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЛ 
Start() ред
 enemiesInRange = new List<GameObject>(); 
рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдореЗрдВ рдХреЛрдИ рджреБрд╢реНрдорди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВред
enemiesInRange рдХреА рд╕реВрдЪреА рднрд░реЗрдВ 
enemiesInRange ! рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
 
- OnEnemyDestroyрд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЛ рджреБрд╢реНрдордиреЛрдВ рд╕реЗ- enemiesInRangeред рдЬрдм рдПрдХ рджреБрд╢реНрдорди рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдкрд░ рдХрджрдо- OnTriggerEnter2Dрд╣реИ, рддреЛ- OnTriggerEnter2Dред
- рдлрд┐рд░ рд╣рдо рджреБрд╢реНрдордиреЛрдВ рдХреЛ рджреБрд╢реНрдорди рдореЗрдВ enemiesInRangeрд╕реВрдЪреА рд╕реВрдЪреА рдФрд░EnemyDestructionDelegateрдШрдЯрдирд╛OnEnemyDestroyрдЬреЛрдбрд╝реЗрдВред рддреЛ рд╣рдо рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рджреБрд╢реНрдорди рдХреЗ рд╡рд┐рдирд╛рд╢ рдкрд░OnEnemyDestroyрдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдореГрдд рджреБрд╢реНрдордиреЛрдВ рдкрд░ рдЧреЛрд▓рд╛ рдмрд╛рд░реВрдж рдЦрд░реНрдЪ рдХрд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣реИ рдирд╛?
- OnTriggerExit2Dрд╣рдо рджреБрд╢реНрдорди рдХреЛ рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдЕрдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рджреБрд╢реНрдорди рд╕реАрдорд╛ рдореЗрдВ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд░рд╛рдХреНрд╖рд╕ рдХреЛ рд╕реНрдерд┐рддрд┐ рджреЗрдВ, рдЗрд╕реЗ рдЪреБрдиреЗрдВ рдФрд░ 
enemiesInRange рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред 
enemiesInRange рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред
рд▓рдХреНрд╖реНрдп рдЪрдпрди
рд░рд╛рдХреНрд╖рд╕ рдЕрдм рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рджреБрд╢реНрдорди рдХреА рд╕реАрдорд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рд╡реЗ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рдХрдИ рджреБрд╢реНрдорди рд╣реЛрдВрдЧреЗ рддреЛ рд╡реЗ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ?
рдмреЗрд╢рдХ, рд╡реЗ рдЬрд┐рдЧрд░ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рд╕реЗ рд╣рдорд▓рд╛ рдХрд░реЗрдВрдЧреЗ!
MoveEnemy.cs IDE рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕ рд░рд╛рдХреНрд╖рд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
 public float DistanceToGoal() { float distance = 0; distance += Vector2.Distance( gameObject.transform.position, waypoints [currentWaypoint + 1].transform.position); for (int i = currentWaypoint + 1; i < waypoints.Length - 1; i++) { Vector3 startPosition = waypoints [i].transform.position; Vector3 endPosition = waypoints [i + 1].transform.position; distance += Vector2.Distance(startPosition, endPosition); } return distance; } 
рдХреЛрдб рджреБрд╢реНрдорди рджреНрд╡рд╛рд░рд╛ рдпрд╛рддреНрд░рд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рдкрде рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ 
Distance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ 
Vector3 рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рд╣рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рд▓рдХреНрд╖реНрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдмрдХрд┐ рд╣рдорд╛рд░реЗ рд░рд╛рдХреНрд╖рд╕ рд╕рд╢рд╕реНрддреНрд░ рдФрд░ рдЕрд╕рд╣рд╛рдп рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣рдо рдЗрд╕реЗ рдХрд░реЗрдВрдЧреЗред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЧреЛрд▓реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред
рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдЧреЛрд▓реЗ рджреЗрддреЗ рд╣реИрдВред рдЦреЛрд▓ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ!
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ 
рдЪрд┐рддреНрд░ / рдСрдмреНрдЬреЗрдХреНрдЯ / рдмреБрд▓реЗрдЯ 1 рджреГрд╢реНрдп рдкрд░ рдЦреАрдВрдЪреЗрдВ ред 
Z рд╕реЗ 
-2 рдкрд░ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ - x рдФрд░ y рдкрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред
BulletBehavior рдирд╛рдордХ рдПрдХ рдирдИ 
C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдлрд┐рд░ IDE рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
 public float speed = 10; public int damage; public GameObject target; public Vector3 startPosition; public Vector3 targetPosition; private float distance; private float startTime; private GameManagerBehavior gameManager; 
speed рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ рдХреА 
speed рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ; рдирд╛рдо рд╕реЗ 
damage рд╕реНрдкрд╖реНрдЯ рд╣реИред
target , 
startPosition рдФрд░ 
targetPosition рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
distance рдФрд░ 
startTime рдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╡рд╣ рджреБрд╢реНрдорди рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ рддреЛ 
gameManager рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд░рддрд╛ рд╣реИред
Start() рдореЗрдВ рдЗрди рдЪрд░реЛрдВ рдХреЗ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
 startTime = Time.time; distance = Vector2.Distance (startPosition, targetPosition); GameObject gm = GameObject.Find("GameManager"); gameManager = gm.GetComponent<GameManagerBehavior>(); 
startTimeрд╣рдо рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рд▓рдХреНрд╖реНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ GameManagerBehaviorредрдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреА рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Update()рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ : 
- рд╣рдо рдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреА рдирдИ рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, Vector3.Lerpрд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдХреЗ рдкрджреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- рдпрджрд┐ рдкреНрд░рдХреНрд╖реЗрдкреНрдп рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ targetPosition, рддреЛ рд╣рдо рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИtargetред
- рд╣рдо HealthBarрд▓рдХреНрд╖реНрдп рдХреЗ рдШрдЯрдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░damageрдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЗрд╕рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред
- рдпрджрд┐ рджреБрд╢реНрдорди рдХрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдирд╖реНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдкрд░ рд▓реМрдЯреЗрдВредрд╣рдо рдмрдбрд╝реЗ рдЧреЛрд▓реЗ рдмрдирд╛рддреЗ рд╣реИрдВ
рдХреНрдпрд╛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рд░рд╛рдХреНрд╖рд╕ рдЙрдЪреНрдЪ рд╕реНрддрд░реЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдЧреЛрд▓реЗ рдорд╛рд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ? рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ рдкреНрд░реАрдлреИрдм рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреИрдм рдкрд░ Bullet1рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЦреАрдВрдЪреЗрдВ ред рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреГрд╢реНрдп рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ - рд╣рдореЗрдВ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рджреЛ рдмрд╛рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдирдХрд▓ Bullet1 ред рдмреБрд▓реЗрдЯ 2 рдФрд░ рдмреБрд▓реЗрдЯ 3 рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдВ ред рдмреБрд▓реЗрдЯ 2 рдЪреБрдиреЗрдВ ред рдореЗрдВ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ , рдХреНрд╖реЗрддреНрд░ рд╕реЗрдЯ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдШрдЯрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рддрд┐рдкрд╛рджрдХ рдореВрд▓реНрдп рдЫрд╡рд┐рдпрд╛рдБ / рд╡рд╕реНрддреБрдУрдВ / Bullet2ред рддреЛ рд╣рдо Bullet2 рдХреЛ Bullet1 рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдмрдирд╛рдПрдВрдЧреЗредрдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрд╣рд░рд╛рдПрдБ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Bullet3 рдкрд░ рдЫрд╡рд┐рдпрд╛рдБ рд╕рдВрдмрдВрдзрд┐рдд / рд╡рд╕реНрддреБрдУрдВ / Bullet3 ред рдмреБрд▓реЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░рдореЗрдВ рдЖрдЧреЗ рд╣рдо рдЧреЛрд▓реЗ рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд╖рддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреИрдм рдореЗрдВ Prefab Bullet1 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдЖрдк рджреЗрдЦ рдЧреЛрд▓реА рд╡реНрдпрд╡рд╣рд╛рд░ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рд╣реИ, рдЬреЛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдиреБрдХрд╕рд╛рди рдореВрд▓реНрдп 10 рдХреЗ рд▓рд┐рдП Bullet1 , 15 рдХреЗ рд▓рд┐рдП Bullet2 рдФрд░ 20 рдХреЗ рд▓рд┐рдП Bullet3- рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдорд╛рди рдЬреЛ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реЛредрдиреЛрдЯ : рдореИрдВрдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдХреНрд╖рддрд┐ рдХреЗ рд▓рд┐рдП рдХреАрдордд рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рдПред рдпрд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдкреНрд░реАрдлреИрдм рдХреЗ рдЧреЛрд▓реЗ - рдЖрдХрд╛рд░ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИрдЧреЛрд▓реЗ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрджрд▓рдирд╛
рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреЛрд▓реЗ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдордЬрдмреВрдд рд░рд╛рдХреНрд╖рд╕ рддреЗрдЬреА рд╕реЗ рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдВредIDE рдореЗрдВ MonsterData.cs рдЦреЛрд▓реЗрдВ рдФрд░ MonsterLevelрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ : public GameObject bullet; public float fireRate; 
рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреЗ рдкреНрд░реАрдлреИрдм рдФрд░ рдЖрдЧ рдХреА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рд░рд╛рдХреНрд╖рд╕ рд╕реЗрдЯрдЕрдк рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВредрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореЙрдиреНрд╕реНрдЯрд░ рдкреНрд░реАрдлрд╝реИрдм рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрддрд░ рдШрдЯрдХ рдореЗрдВ рджрд╛рдирд╡ рдбреЗрдЯрд╛ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ) ред рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреА рдЖрдЧ рджрд░ рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдлрд┐рд░ рддрддреНрд╡ 0, 1, рдФрд░ 2 рдХреЗ рдмреБрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ Bullet1 , Bullet2 рдФрд░ Bullet3 рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ редрд░рд╛рдХреНрд╖рд╕ рдХрд╛ рд╕реНрддрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:рдЧреЛрд▓реЗ рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдорд╛рд░рддреЗ рд╣реИрдВ? рд╣рд╛рдБ! рдЪрд▓реЛ рдЖрдЧ рдЦреЛрд▓реЛ!рдЦреБрд▓реА рдЖрдЧ
OpenEnemy.cs рдХреЛ IDE рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝реЗрдВ: private float lastShotTime; private MonsterData monsterData; 
рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпреЗ рдЪрд░ рдЕрдВрддрд┐рдо рд░рд╛рдХреНрд╖рд╕ рд╢реЙрдЯ рдХреЗ рд╕рдордп рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рдВрд░рдЪрдирд╛ MonsterDataрдЬрд┐рд╕рдореЗрдВ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рдЧреЛрд▓реЗ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЖрдЧ рдХреА рдЖрд╡реГрддреНрддрд┐, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИредрдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ Start(): lastShotTime = Time.time; monsterData = gameObject.GetComponentInChildren<MonsterData>(); 
рдпрд╣рд╛рдВ рд╣рдо lastShotTimeрд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ MonsterDataрдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдШрдЯрдХ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ редрд╢реВрдЯрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ: void Shoot(Collider2D target) { GameObject bulletPrefab = monsterData.CurrentLevel.bullet;  
- рд╣рдореЗрдВ рдмреБрд▓реЗрдЯ рдХреЗ рд╢реБрд░реБрдЖрддреА рдФрд░ рд▓рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВред Z рдХреЗ рдмрд░рд╛рдмрд░ рд╕реНрдерд┐рддрд┐ z рд╕реЗрдЯ рдХрд░реЗрдВ bulletPrefabред рдкрд╣рд▓реЗ, рд╣рдо рдкреНрд░рдХреНрд╖реЗрдкреНрдп рдХреА рдкреВрд░реНрд╡ рд╕реНрдерд┐рддрд┐ рдХреЛ z рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рдХреНрд╖реЗрдкреНрдп рд╢реВрдЯрд┐рдВрдЧ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗ, рд▓реЗрдХрд┐рди рджреБрд╢реНрдордиреЛрдВ рд╕реЗ рдКрдкрд░ред
- рд╣рдо bulletPrefabрдЙрдкрдпреБрдХреНрдд рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдП рд╢реЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВMonsterLevelред рдЕрд╕рд╛рдЗрдиstartPositionрдФрд░targetPositionрдкреНрд░реЛрдЬреЗрдХреНрдЯрд╛рдЗрд▓ред
- рд╣рдо рдЦреЗрд▓ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рддреЗ рд╣реИрдВ: рдЬрдм рд░рд╛рдХреНрд╖рд╕ рдЧреЛрд▓реА рдорд╛рд░рддрд╛ рд╣реИ, рддреЛ рд╢реВрдЯрд┐рдВрдЧ рдХрд╛ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд▓реЗрдЬрд░ рдХреА рдЖрд╡рд╛рдЬрд╝ рдмрдЬрд╛рдПрдВред
рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛
рдпрд╣ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд▓рдХреНрд╖реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рд░рд╛рдХреНрд╖рд╕ рдХреЛ рджреЗрдЦреЛредShootEnemy.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ ,Update() рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝реЗрдВ : GameObject target = null;  
рдЗрд╕ рдХреЛрдб рдЪрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред- рд░рд╛рдХреНрд╖рд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рд╣рдо рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рджреВрд░реА рдкрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ minimalEnemyDistanceред рд╣рдо рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╕рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдЪрдХреНрд░ рдореЗрдВ рдШреВрдорддреЗ рд╣реИрдВ рдФрд░ рджреБрд╢реНрдорди рдХреЛ рдПрдХ рдирдпрд╛ рдирд┐рд╢рд╛рдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдХреБрдХреА рд╕реЗ рдЙрд╕рдХреА рджреВрд░реА рд╡рд░реНрддрдорд╛рди рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд╕реЗ рдХрдо рд╣реЛред
- рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ ShootрдХрд┐ рдЕрдЧрд░ рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп рд░рд╛рдХреНрд╖рд╕ рдХреА рдлрд╛рдпрд░рд┐рдВрдЧ рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░lastShotTimeрд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд╣рдо рд░рд╛рдХреНрд╖рд╕ рдФрд░ рдЙрд╕рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рдмреАрдЪ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд░рд╛рдХреНрд╖рд╕ рдХреЛ рдЗрд╕ рдХреЛрдг рдкрд░ рдШреБрдорд╛рддреЗ рд╣реИрдВред рдЕрдм рд╡рд╣ рд╣рдореЗрд╢рд╛ рд▓рдХреНрд╖реНрдп рдХреЛ рджреЗрдЦреЗрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рд░рд╛рдХреНрд╖рд╕ рдХреБрдХреАрдЬрд╝ рдХреА рд╕рдЦреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред рд╣рдо рдЖрдЦрд┐рд░рдХрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ
рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редрд╣рдордиреЗ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЦреЗрд▓ рд╣реИредрдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:- рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рддреНрд░реБ рдФрд░ рд░рд╛рдХреНрд╖рд╕
- рджреБрд╢реНрдордиреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рд░реНрдЧ
- рд╡рд┐рднрд┐рдиреНрди рдЦреЗрд▓ рд╕реНрддрд░
рдЗрди рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдиреНрдпреВрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЦреЗрд▓ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдордЬреЗрджрд╛рд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдЧреЗрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВредрдПрдХ рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рд╣рд┐рдЯ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред