рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реЗрдмреЗрд╕реНрдЯрд┐рдпрд╛рдиреЛ рдордВрдбрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд
Svelto.ECS рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХреА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред
Svelto.ECS рдПрдХрддрд╛ рдкрд░ рдЦреЗрд▓реЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╢реЛрдз рдФрд░ SOLID рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрд╣ рдкреИрдЯрд░реНрди рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХреА рдЧрдИ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде C # рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз ECS рдкреИрдЯрд░реНрди рдХреЗ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдкрд╣рд▓реЗ рджреЗрдЦреЛ
рд╡рдиреАрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Svelto.ECS рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛:
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдХреЛрдб рдХреЗ рдкреАрдЫреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рднреНрд░рдорд┐рдд рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдкрд╛рда рдХреА рджреАрд╡рд╛рд░" рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдкрд░рд┐рдЪрдп
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рдХрдИ, рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде
Svelto.ECS рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдЗрдХрдЯреНрдареА рдХреАрдВ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдиреЛрдЯреНрд╕ рдмрдирд╛рдП рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЕрдЪреНрдЫреА рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдереЛрдбрд╝рд╛ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓рд╛: рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЬрдм рдЖрдк Svelto.ECS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдмрд╛рдзрд╛
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рдмрджрд▓ рд░рд╣реА рд╣реИ ред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд░реВрдкрд░реЗрдЦрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рдХреЛрдб рдХреА рдЫреЛрдЯреА рдорд╛рддреНрд░рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Svelto.ECS рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдмрдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╣рд▓реНрдХрд╛ рд╣реИ, OOP рд╕реЗ рд╕рдВрдХреНрд░рдордг рдпрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдПрдХрддрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде "рдирдпрд╛" рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдбрд┐рдЬрд╛рдЗрди рдЬреЛ рдХрд┐ Svelto.ECS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
Svelto.ECS рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ
рдлреНрд░реАрдЬрдо (рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдиреЛрдЯ - рд▓реЗрдЦрдХ рдЗрд╕ рдХрдВрдкрдиреА рдореЗрдВ рддрдХрдиреАрдХреА рдирд┐рджреЗрд╢рдХ рд╣реИрдВ) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рд░реВрдкрд░реЗрдЦрд╛ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ Svelto.ECS рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдард┐рди рд╣реИ, рдмреБрд░реА рдЖрджрддреЛрдВ рдкрд░ рдХрд╛рдмреВ рдкрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ "рдкреБрд░рд╛рдиреЗ" рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рд╕рд╣рдЬ рд╣реИрдВред рдЗрд╕рд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдиреЗ рд╡рд╛рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рдЧрд▓рддрдлрд╣рдореА рдпрд╛ рд╡рд┐рд░реВрдкрдг рдХреЗ рдХрд╛рд░рдг рдЖрдкрджрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдИрд╕реАрдПрд╕ рдкреНрд░рддрд┐рдорд╛рди рдЗрд╕ рд╕рдордп рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдмрджрд▓рддреЗ рдФрд░ рдкреБрди: рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд░реЛрдмреЛрдХреНрд░рд╛рдлреНрдЯ рдФрд░
рдХрд╛рд░реНрдбрд▓рд╛рдЗрдл рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИрдВред
рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ
IoC рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ ECS рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛: IoC рдХрдВрдЯреЗрдирд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдЦрддрд░рдирд╛рдХ рдЙрдкрдХрд░рдг рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдг рдЙрд▓рдЯрд╛ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░ рдХреЛ рд╕рдордЭреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо (рдХреНрд░рд┐рдПрд╢рди рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдЙрд▓рдЯрд╛) рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо (рдлреНрд▓реЛ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдЙрд▓рдЯрд╛) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реВрдВред рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реЙрд▓реАрд╡реБрдб рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рддрд░рд╣ рд╣реИ: "рд╣рдореЗрдВ рдХреЙрд▓ рдордд рдХрд░реЛ, рд╣рдо рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред" рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрднреА рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ IoC рдХрдВрдЯреЗрдирд░ рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реВрдк, рдЬреИрд╕реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ IoC рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ Inversion of Management (IoC) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рднреА рдЙрди рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдзрд┐" рдкреИрдЯрд░реНрди рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдЖрдХреНрд░рдордг рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдкреНрд░рдмрдВрдзрдХ рд╣рдореЗрд╢рд╛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдИрд╕реАрдПрд╕ рдкреИрдЯрд░реНрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдмреЗрд╢рдХред рдЗрд╕ рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдИрд╕реАрдПрд╕ рдкреИрдЯрд░реНрди рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрдареЛрд░ рд░реВрдкрд░реЗрдЦрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
рд░рдЪрдирд╛ рд░реВрдЯ рдФрд░ рдЗрдВрдЬрди
рдореБрдЦреНрдп рд╡рд░реНрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╕рдВрд░рдЪрдирд╛ рд░реВрдЯ рд╣реИред рд░рдЪрдирд╛ рдХреА рдЬрдбрд╝ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдмрдирд╛рдИ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ (рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдмрд╛рдд рдХреА)ред рдПрдХ рд░рдЪрдирд╛ рдЬрдбрд╝ рдПрдХ рд╕рдВрджрд░реНрдн рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░рдЪрдирд╛ рдЬрдбрд╝ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реИрдХреНрдЯрд░реА рд░рдЪрдирд╛ рдХрд╛ рдореВрд▓ рд╣реИред рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ, рдФрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдХреЛрдб рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП Svelto.ECS рднрд╛рд╖рд╛ рдХреЗ рдкрд╣рд▓реЗ рдирд┐рдпрдореЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред ECS рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрдХрд╛рдИ рдШрдЯрдХ рд╣реИред рдХрдИ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдИрд╕реАрдПрд╕ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдмрдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдИрд╕реАрдПрд╕-рдЙрдиреНрдореБрдЦ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд╛рд░, рдЕрд╡рдпрд╡реЛрдВ (рд╕рдВрд╕реНрдерд╛рдУрдВ) рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╢рдмреНрдж рдХрд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╢реБрд░реВ рд╕реЗ рд╣реА рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╣рдЬ рдирд╣реАрдВ рдорд╛рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрдВрдЬрди рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдФрд░ рдЖрдк рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
EnginesRoot рд╡рд░реНрдЧ Svelto.ECS рдХрд╛ рдореВрд▓ рд╣реИред рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рдЖрдк рдЗрдВрдЬрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓ рдХреЗ рд╕рднреА рд╕рд╛рд░ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрди рд╕рднреА рдХреЛ рдЗрдВрдЬрди рдХреЗ рдЙрд╕реА рд░реВрдЯ рд╕реЗ EnginesRoot рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ EnginesRoot рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХрднреА рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд░рдЪрдирд╛ рдХреА рдПрдХ рдЬрдбрд╝ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╡рд░реНрддрдорд╛рди рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдЗрдВрдЬрди рдирд┐рд░реНрдорд╛рдг рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд░рдЪрдирд╛ рдХреА рдЬрдбрд╝ рдХреНрдпрд╛ рд╣реИ:
void SetupEnginesAndEntities() {
рдпрд╣ рдХреЛрдб рд╕рд░реНрд╡рд╛рдЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рдЕрдЪреНрдЫреЗ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЗрдВрдЬрди рд▓реЙрдЬрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЖрдкрдХреЛ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕ рдЖрдХрд╛рд░ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕реНрд╡реЗрд▓реНрдЯреЛ рдХреЗ рд▓рд┐рдП рдирдП рд╣реИрдВред
рддрдереНрдп
рд░рдЪрдирд╛ рдХреА рдЦрд╛рд▓реА рдЬрдбрд╝ рдФрд░ EnginesRoot рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓рд╛ рдХрджрдо рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдВрдЯрд┐рдЯреА рдкреНрд▓реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред Svelto.ECS рдХрд╛ рд╕рд╛рд░ рдПрдХрддрд╛ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ (рдЧреЗрдордСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдИрд╕реАрдПрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рд▓реЗрдЦ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдореЗрдВ, рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдИрд╕реАрдПрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рддрд░реАрдХрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ Svelto.ECS рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ, рдпрд╣ рдЗрд╕рдореЗрдВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ Svelto.ECS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреЗрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдбреЛрдореЗрди рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рд╡рд░реНрдгрди рдФрд░ рдкрд╣рдЪрд╛рди рдХрд░реЗред рдХреЛрдб рдореЗрдВ рдЗрдХрд╛рдИ рдХреЛ рдЧреЗрдо рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрдХрд╛рдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд░реВрдк Svelto.ECS рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХрд╛ рдПрдХ рджреВрд░рдЧрд╛рдореА рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдореВрд▓рднреВрдд рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдФрд░ рдЖрдк рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рд╕реНрд╡рдпрдВ рдХреЛрдб рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдВрдЬрди
рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рд╕реЛрдЪрдирд╛ рд╣реИ рдХрд┐ рдПрдВрдЯрд┐рдЯреАрдЬ рд╕реЗ рдХреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЖрдк Svelto.ECS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдЧ рдореЗрдВ рддрд░реНрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗред рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЪрд░рд┐рддреНрд░ рдХреЛ рдЖрдЧреЗ
рдмрдврд╝рд╛рдХрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
PlayerMovementEngine рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░
рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрдВрдЬрди рдХрд╛ рдирд╛рдо рдмрд╣реБрдд рд╕рдВрдХреАрд░реНрдг рд░реВрдк рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ред Svelto.ECS рдореЗрдВ рдЙрдЪрд┐рдд рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдордХрд░рдг рдореМрд▓рд┐рдХ рд╣реИред рдФрд░ рд▓рдХреНрд╖реНрдп рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЗрд░рд╛рджреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдЙрдиреНрд╣реЗрдВ "рджреЗрдЦрдиреЗ" рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣реИред
рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЗрдВрдЬрди рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рд╣реЛред рдпрджрд┐ рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Svelto.ECS рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рдХрд░реЗрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ рдЬрдм рдЗрдХрд╛рдЗрдпрд╛рдВ рдЕрд╕рдВрдЧрдд рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рд╢рддреНрд░реБ рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд▓рдХреНрд╖реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рддрд┐рд░реВрдк рдФрд░ рдХрдордЬреЛрд░ рдпреБрдЧреНрдорди рд╕реЗ рдЬреБрдбрд╝реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдирд╛рдорд╕реНрдерд╛рди рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ рднреАрддрд░ рдпрд╛ рдореВрд▓ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Svelto.ECS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕реНрдкреЗрдЧреЗрдЯреА рдореЗрдВ рдмрджрд▓рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдЬрд╣рд╛рдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд┐рдпрдо рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдКрдкрд░ рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдЬрдм рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдореВрд░реНрдд рд╣реЛрддреА рд╣реИрдВред
Svelto.ECS рдореЗрдВ, рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдИрд╕реАрдПрд╕ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдЬрд┐рдХ рд╕реЗ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЙрдирдХреЗ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рди рдХрд┐ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдВрдЬрди рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рд╕рдорд╛рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдпреБрдХреНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрдВрдЬрди рд╣рдореЗрд╢рд╛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред
Svelto.ECS рдФрд░ ECS рдкреНрд░рддрд┐рдорд╛рди рд╢реБрджреНрдз рдПрдирдХреЛрдбрд░ рдХреЛ рд╢реБрджреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рддрд░реНрдХ рдХрд╛ рдЖрджрд░реНрд╢ рдЖрд╡рд░рдг рд╣реИред рдЗрдВрдЬрди рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдПрдХрдорд╛рддреНрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп рдЬреЛ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реЗ рд╣реИрдВ рдЬреЛ рдврд╛рдВрдЪреЗ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦрд░рд╛рдм рдХреЛрдб рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдг рдЙрд▓рдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдЗрдВрдЬрди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдВрдЬрди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрдВрдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВред
рдпреВрдирд┐рдЯреА рдореЛрдиреЛрдмреЗрд╡рд┐рдпрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЗрдВрдЬрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдмрдбрд╝рд╛ рдлрд╛рдпрджрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЛрдб рдХреЗ рдПрдХ рд╣реА рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рд╕реНрдерд╛рди рд╕реЗ рд╕реАрдзреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реНрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдВрдЬрди рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрдВрдЬрди рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХреЗ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдЗрдВрдЬрди рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рджреЛ рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг
PlayerGunSourcingEngine рдФрд░
PlayerGunSourcingFxsEngine рдЗрдВрдЬрди рдХреЛ
рджреЗрдЦрдХрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рджреЛ рдЗрдВрдЬрди рдПрдХ рд╣реА рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА (рд╢рддреНрд░реБ) рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ
PlayerGunSourcingEngine рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░
IGunAttributesComponent рдШрдЯрдХ (рдЬреЛ рдХрд┐ рдПрдХ
PlayerGunEntity рдШрдЯрдХ рд╣реИ) рдХреЗ
lastTargetPosition рдорд╛рди рд▓рд┐рдЦрддрд╛ рд╣реИред
PlayerGunShootFxsEngine рд╣рдерд┐рдпрд╛рд░ рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд рд▓рдХреНрд╖реНрдп рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдкреЛрд▓рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ
рдбреЗрдЯрд╛ (рдбреЗрдЯрд╛ рдкреБрд╢) рдпрд╛
рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ) рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрдВрддреНрд░ рдХреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПред рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрдВрдЬрди рдХреЛ рдХрднреА рднреА рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВред рдмрд╛рд╣реНрдп рд╕рдВрдЪрд╛рд░ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ Svelto.ECS рдЗрдВрдЬрди рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдВрдмрдВрдз рдХреЛ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЗрдВрдЬрди рд╡реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рд╕рдВрдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпреЗ рдЗрдВрдЬрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реВрдк рд╣рдореЗрд╢рд╛ Svelto.ECS рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдВрджрд░ Svelto.Task рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдореВрд╡рдореЗрдВрдЯ рдХреЛ рд╣рд░ рдлрд┐рдЬрд┐рдХрд▓ рдЯрд┐рдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдлрд┐рдЬрд┐рдХрд▓ рдЯрд┐рдХ рдкрд░ рдЯрд╛рд╕реНрдХ рдХрд░рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реЛрдЧрд╛ред Svelto.Tasks рдЖрдкрдХреЛ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢реЗрдбреНрдпреВрд▓рд░реНрд╕ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ
IEnumerator рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ
PhysicScheduler рдкрд░ рдПрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреЛ рдЖрдкрдХреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
public PlayerMovementEngine(IRayCaster raycaster, ITime time) { _rayCaster = raycaster; _time = time; _taskRoutine = TaskRunner.Instance.AllocateNewTaskRoutine() .SetEnumerator(PhysicsTick()).SetScheduler(StandardSchedulers.physicScheduler); } protected override void Add(PlayerEntityView entityView) { _taskRoutine.Start(); } protected override void Remove(PlayerEntityView entityView) { _taskRoutine.Stop(); } IEnumerator PhysicsTick() {
Svelto.T рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдпрд╛
ITaskRoutine рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдпрд╣рд╛рдБ Svelto.Tasks рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд▓реЗрдЦ рд▓рд┐рдЦреЗ рд╣реИрдВред IEnumerator рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реАрдзреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рдЯрд╛рд╕реНрдХ рд░реВрдЯреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЬреЛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рд╡рд╣ рдХрд╛рдлреА рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рд╣реИред рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЬрдм рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЬрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдм рдЬреЛрдбрд╝рд╛ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредSvelto.ECS рдХреБрдЫ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рдФрд░ рд╣рдЯрд╛рддрд╛ рд╣реИред рдпрд╣ Svelto.ECS рдореЗрдВ рдХреБрдЫ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рджреЗрдЦрд╛ рдХрд┐ рдЗрди рдХреЙрд▓рдмреИрдХ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЗрдВрдЬрди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЗрдХрд╛рдИ рд╕рдВрджрд░реНрдн рдХреЛ рдПрдХ рдирд┐рдпрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдкрд╡рд╛рдж рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдХреЗрд╡рд▓ рдЬрдм рдЗрди рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рдЗрдВрдЬрди рдХреЛ рд╕рд┐рдВрдЧрд▓рдЯреЗрдВрдЯ рд╡реНрдпреВ рд╡реНрдпреВрдЗрдиреНрдЧрд╛рдЗрди рдпрд╛ рдорд▓реНрдЯреАрдПрдВрдЯрд┐рдЯреАрдЬ рд╡реНрдпреВрдЗрдВрдЬреАрди <EntityView1, ..., EntityViewN> рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредред рдлрд┐рд░ рд╕реЗ, рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрд░реНрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЬрди рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛редрдЗрдВрдЬрди рдЕрдХреНрд╕рд░ IQueryingEntityViewEngine рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣ рдЖрдкрдХреЛ рдЗрдХрд╛рдИ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдХреНрд╖рдг рдЖрдк рдПрдХ рдЗрдХрд╛рдИ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдЬрд╣рд╛рдВ рдЗрдВрдЬрди рд╕реНрдерд┐рдд рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрдВрдЬрди рдХреЛ рдХрднреА рднреА рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдВрд╕реНрдерд╛рдПрдВ рд╕реБрд▓рдн рд╣реИрдВ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЦрд┐рд▓рд╛рдбрд╝реА рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрдВ EnemyMovementEngine рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИ: public void Ready() { Tick().Run(); } IEnumerator Tick() { while (true) { var enemyTargetEntityViews = entityViewsDB.QueryEntityViews<EnemyTargetEntityView>(); if (enemyTargetEntityViews.Count > 0) { var targetEntityView = enemyTargetEntityViews[0]; var enemies = entityViewsDB.QueryEntityViews<EnemyEntityView>(); for (var i = 0; i < enemies.Count; i++) { var component = enemies[i].movementComponent; component.navMeshDestination = targetEntityView.targetPositionComponent.position; } } yield return null; } }
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рдЗрдВрдЬрди рдЪрдХреНрд░ рд╕реАрдзреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдиреБрд╕реВрдЪрдХ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЯрд┐рдХ () .Run ()IEnumerator Svelto.Tasks рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬрдм рддрдХ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╢рддреНрд░реБ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рддрдм рддрдХ рдЖрдИрдПрдирдореНрдпреВрдореЗрдЯреЗрд░ рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ рдПрдХ рд▓рдХреНрд╖реНрдп (рдПрдХ рдФрд░ рдмреБрд░реА рдзрд╛рд░рдгрд╛) рд╣реЛрдЧреА, рдореИрдВ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рдПрдХ рдХреЛ рдЪреБрдирддрд╛ рд╣реВрдВред рдЬрдмрдХрд┐ рджреБрд╢реНрдорди рд▓рдХреНрд╖реНрдп рдХрд╛ рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!), рдХрдИ рджреБрд╢реНрдорди рд╣реИрдВ, рдФрд░ рдЗрдВрдЬрди рдлрд┐рд░ рднреА рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЖрдВрджреЛрд▓рди рдХреЗ рддрд░реНрдХ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдзреЛрдЦрд╛ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХрддрд╛ рдирд╡ рдореЗрд╖ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдирд╡рдореЗрд╢ рдХреЗ рд▓рд┐рдП рдЧрдВрддрд╡реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рдХрднреА рднреА рдПрдХрддрд╛ рдирд╡рдореЗрд╢ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЛрдб рд╕рд┐рд░реНрдл рдореВрд▓ рдЬреАрд╡рди рд░рдХреНрд╖рд╛ рдбреЗрдореЛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИредрдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдШрдЯрдХ рд╕реАрдзреЗ рдПрдХ рдирд╡рдореЗрд╢ рдПрдХрддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрдХрд╛рдИ рдШрдЯрдХ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛, рд╣рдореЗрд╢рд╛ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдирд┐рдпрдо рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд╡рдореЗрд╢рдбрд╕реНрдЯреЗрдиреЗрд╢рди рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рдПрдХрддрд╛ рдирд╡ рдореЗрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЗрдВрдЬрдиреЛрдВ рдкрд░ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЗрдВрдЬрди рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдХреА рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдЗрдВрдЬрди рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдбрд░реЛ рдордд, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрд╣реАрдВ рдФрд░ рддрд░реНрдХ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рд╕рдорд╛рди рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЗрдВрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЗрдХрд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЗрдВрдЬрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рд╕рд╛рд░ рдХреА рд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреЗрд╢ рдХреА, рдЪрд▓реЛ рдЕрдм рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Svelto.ECS рдкрд░ рдмрдирд╛рдИ рдЧрдИ 5 рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ, Entity Views рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдкрд╣рд▓реЗ Node ( ECS рдРрд╢ рдврд╛рдВрдЪреЗ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдирд╛рдо) рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ , рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ "Node" рдирд╛рдо рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред EntityView рднреА рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдореЙрдбрд▓ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░(рдореЙрдбрд▓ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░), рд╣рд╛рд▓рд╛рдВрдХрд┐, Svelto.ECS View рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ EntityView рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдПрдВрдЯрд┐рдЯреА рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ EntityMap рднреА рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ EntityView рдЙрд╕ рдЗрдХрд╛рдИ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрдВрдЬрди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред Svelto.ECS рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:
рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ, рдФрд░ рдЕрдм рд╣рдо рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЬрди рдореЗрдВ EntityViews рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рд╣реИред рдЗрдВрдЬрди рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд EntityViews рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЗрдВрдЬрди рдЕрдкрдиреЗ EntityViews рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЬрди рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЗрдХрд╛рдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ PlayerEntityView рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИрдХрд╛рдо рдХреЗ рд▓рд┐рдПред рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЗрдВрдЬрди рдХреА рдЬрд░реВрд░рддреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЗрдХрд╛рдИ рдФрд░ рдЙрд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, EntityView рдирд╛рдо рдФрд░ рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣рдо рд╣реЛ рд╕рдХрддрд╛ рдерд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд▓реЗрдпрд░ рдкреНрд▓реЗрдпрд░ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдЗрдВрдЬрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рддреЛ (рдбреАред рдпрд╛ рдПрдирд┐рдореЗрд╢рди, рдФрд░ рдЗрддрдиреЗ рдкрд░ред) PlayerPhysicEngine рд╕рд╛рде PlayerPhysicEntityView , рдФрд░ PlayerGraphicEngine рд╕рд╛рде PlayerGraphicEntityView рдпрд╛ PlayerAnimationEngine рд╕рд╛рде PlayerAnimationEntityView ред рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ PlayerPhysicMovementEngine рдпрд╛ PlayerPhysicJumpEngine (рдФрд░ рдЗрддрдиреЗ рдкрд░ред рдбреА)редрдШрдЯрдХреЛрдВ
рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЗрдВрдЬрди рдЗрдХрд╛рдИ рдЗрдХрд╛рдИ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЬрди рд╕реАрдзреЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдХрд╛рдИ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ EntityView рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣ рднреА рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЗрдХрд╛рдИ рдШрдЯрдХ рд╣рдореЗрд╢рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЪрд▓реЛ рдПрдХ рдмреЗрд╣рддрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рджреЗрддреЗ рд╣реИрдВ:рдЗрдХрд╛рдЗрдпрд╛рдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдФрд░ рдЗрдХрд╛рдИ рдШрдЯрдХ рдЙрд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдХрд╛рдИ рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ Svelto.ECS рдХреА рдПрдХ рдФрд░ рдмрд╣реБрдд рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рдШрдЯрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ" рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрд▓рдЧрд╛рд╡ рд╕рд┐рджреНрдзрд╛рдВрдд", рдЬрд┐рд╕рдореЗрдВ рдЫреЛрдЯреЗ рдШрдЯрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд┐рдЦреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рднреАрддрд░ рдШрдЯрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, ITransformComponent рдХреЛ рдХрдИ рдирд┐рдХрд╛рдп рдЕрднреНрдпрд╛рд╡реЗрджрди рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрднреНрдпрд╛рд╡реЗрджрди (рдпрд╛ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВредрдЗрд╕рд▓рд┐рдП, Svelto.ECS рдореЗрдВ, рдЗрдХрд╛рдИ рдШрдЯрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ EntityView рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдХрд╛рдИ рдШрдЯрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рддрдерд╛рдХрдерд┐рдд рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ┬л┬╗. , .рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд╝реАрд▓реНрдб рд╣рдореЗрд╢рд╛ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВред рдЕрдиреБрдХреВрд▓рди рдХреЗрд╡рд▓ рд╕реЗрдЯрд░реНрд╕ рдФрд░ рдЧреЗрдЯрд░реНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд░реЗрдл рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдб рдбреЗрдЯрд╛ рдЙрдиреНрдореБрдЦ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рдХреЗ рддрд░реНрдХ рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЛрдбрд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдзреЛрдЦрд╛ рджреЗрдиреЗ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдпреЛрдВ (рдЬрд┐рд╕рдореЗрдВ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рдЬрд┐рд╕реЗ рдЖрдк рдЗрдХрд╛рдИ рдШрдЯрдХреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЕрдВрджрд░ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рдереЗ, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЖрд╢реНрд░рд┐рддреЛрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрддреНрддрд░рдЬреАрд╡рд┐рддрд╛ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ,рдПрдХрддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдВрдЬрди рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░редрдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдПрдВрдЯрд┐рдЯреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░реНрд╕ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЬрди рдПрдВрдЯрд┐рдЯреА рд╡реНрдпреВрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдЯрд┐рдЯреА рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЬрди рд╡рд░реНрдЧ рд╣реИрдВ, рдПрдВрдЯрд┐рдЯреА рд╡реНрдпреВ рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЗрд╡рд▓ рдШрдЯрдХ рд╕рдВрд╕реНрдерд╛рдПрдБ рд╣реИрдВ рдФрд░ рдШрдЯрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рд╕рд╛рд░ рдХреА рдПрдХ рд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ рджреА, рд╣рдордиреЗ рдПрдХ рднреА рд╡рд░реНрдЧ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдЬреЛ рдЖрдзреБрдирд┐рдХ рдИрд╕реАрдПрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рднреАрддрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, Entities рдХреА рд╕рд╣реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдХреЛрдбрд░реНрд╕ рдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде Entities рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ рднрдпрд╛рд╡рд╣ рдЧрд▓рдд рд╣реЛрдЧрд╛ред рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЗрдВрдЬрди рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,рд▓реЗрдХрд┐рди рд╡реЗ рдПрдВрдЯрд┐рдЯреА рдирд╣реАрдВ рд╣реИрдВред рдЗрдХрд╛рдИ рдХреЗ рдЕрд╡рдпрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдХрд╛рдИ рдХреЛ рд╣рдореЗрд╢рд╛ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдПрдХ рдХрдордЬреЛрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдПрдХ EntityDescriptor рдЙрджрд╛рд╣рд░рдг рдПрдирдХреЛрдбрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдиреЗ Entities рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЙрди рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, Entity Player рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИPlayerEntityDescriptor ред рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ Entities рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ BuildEntity <PlayerEntityDescriptor> () рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП Entities рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдПрдирдХреЛрдбрд░редрд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ EntityDescriptor рдПрдХ EntityViews рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ !!! рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдгреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдХреЛрдбрд░реНрд╕ рдХреЛ рдЗрд╕ рдПрдВрдЯрд┐рдЯреА рд╡реНрдпреВ рд╕реВрдЪреА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рдХреЛрдб рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛редрдпрд╣рд╛рдБ рдХреНрдпрд╛ PlayerEntityDescriptor рджрд┐рдЦрддрд╛ рд╣реИ : using Svelto.ECS.Example.Survive.Camera; using Svelto.ECS.Example.Survive.HUD; using Svelto.ECS.Example.Survive.Enemies; using Svelto.ECS.Example.Survive.Sound; namespace Svelto.ECS.Example.Survive.Player { public class PlayerEntityDescriptor : GenericEntityDescriptor<HUDDamageEntityView, PlayerEntityView, EnemyTargetEntityView, DamageSoundEntityView, HealthEntityView, CameraTargetEntityView> { } }
рдЗрдХрд╛рдИ рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛ (рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛) рдПрдХрдорд╛рддреНрд░ рд╡рд░реНрдЧ рд╣реИрдВ рдЬреЛ рдПрдХрд╛рдзрд┐рдХ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, PlayerEntityDescriptor EntityViews рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ PlayerEntity рдмрдирд╛рддреЗ рд╕рдордп рдЗрдВрдЬрди рдореЗрдВ рддреБрд░рдВрдд рдФрд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВредEntityDescriptorHolder
EntityDescriptorHolder рдпреВрдирд┐рдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдЖрдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬреЛ рдпреВрдирд┐рдЯреА рдЧреЗрдо рдСрдмрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╣реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЛрдмреЛрдХреНрд░рд╛рдлреНрдЯ рдореЗрдВ, рд╣рдо рдПрдХ рдПрдХрд▓ рдХреНрдпреВрдм рдХрд╛рд░рдЦрд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдорд╢реАрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреНрдпреВрдмреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдм рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХреНрдпреВрдм рдХреЗ рдкреНрд░реАрдлреИрдм рдореЗрдВ рд╣реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрдпреВрдмреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдореЗрдВ рдореЛрдиреЛрдмреАрд╣реЗрд╡реЙрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рд╕реАрдзреЗ рдПрдВрдЯрд┐рдЯреА рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдВрдЯрд┐рдЯреАрдбреЗрд╕рд┐рдкреНрдЯрд░рд╣реЙрд▓реНрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд░реЗрдВ рдЬрдм рдЖрдк Svelto.ECS рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреЗрдВ, рдЕрдиреНрдпрдерд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд╛ рдЦрддрд░рд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: void BuildEntitiesFromScene(UnityContext contextHolder) {
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ рдПрдХ рдХрдо рдкрд╕рдВрджреАрджрд╛, рдЧреИрд░-рдЬреЗрдиреЗрд░рд┐рдХ рдмрд┐рд▓реНрдбрдРрдВрдЯрд┐рдЯреА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ред рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдореЛрдиреЛрдмреАрд╣реЙрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдореЛрдиреЛрдмреАрд╣реЙрд╡рд░реНрд╕ рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП!Implementory
рд╣рдорд╛рд░реЗ рд╕рд╛рд░ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП Svelto.ECS рдореЗрдВ рдЕрдВрддрд┐рдо рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЗрдореНрдкреЗрд▓рд░ рд╣реИ ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, Entity Components рд╣рдореЗрд╢рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ C # рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд╕реНрддреБ рдЬреЛ рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдЙрд╕реЗ "рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:- рдЗрдХрд╛рдИ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЗрдХрд╛рдИ рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЗрдХрдЯреНрдард╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдирдЯрд╛рдЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХ рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдШрдЯрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдг рдПрдХ рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдШрдЯрдХ рд╕реНрдЯрдм рдЗрдХрд╛рдИ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдЗрдВрдЬрди рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
- Svelto.ECS (third party) . . Unity, , , Monobehaviour . , Unity, OnTriggerEnter / OnTriggerExit , Unity. , . :
public class EnemyTriggerImplementor : MonoBehaviour, IImplementor, IEnemyTriggerComponent, IEnemyTargetComponent { public event Action<int, int, bool> entityInRange; bool IEnemyTriggerComponent.targetInRange { set { _targetInRange = value; } } bool IEnemyTargetComponent.targetInRange { get { return _targetInRange; } } void OnTriggerEnter(Collider other) { if (entityInRange != null) entityInRange(other.gameObject.GetInstanceID(), gameObject.GetInstanceID(), true); } void OnTriggerExit(Collider other) { if (entityInRange != null) entityInRange(other.gameObject.GetInstanceID(), gameObject.GetInstanceID(), false); } bool _targetInRange; }
, , . , .рдЗрдХрд╛рдИ рдирд┐рд░реНрдорд╛рдг
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдЗрдВрдЬрди рдмрдирд╛рдП , рдЙрдиреНрд╣реЗрдВ EnginesRoot рдореЗрдВ рдЬреЛрдбрд╝рд╛ , рдЙрдирдХрд╛ Entity Views рдмрдирд╛рдпрд╛ , рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯрд░реНрд╕ рдХреЗ рдЕрдВрджрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рдпрд╣ рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рд╕рд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдПрдХ рдЗрдХрд╛рдИ рд╣рдореЗрд╢рд╛ Entine Factory рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдХрд┐ EnginesRoot рджреНрд╡рд╛рд░рд╛ GenerateEntityFactory рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ ред рдПрдХ EnginesRoot рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ IEntityFactory рдЙрджрд╛рд╣рд░рдг рддреИрдирд╛рдд рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд░реВрдЯ рдХреЗ рдЕрдВрджрд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ IEntityFactory рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредIEntityFactory рдХрдИ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджреМрд░рд╛рди , рдореИрдВ PreallocateEntitySlots рдФрд░ BuildMetaEntity рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ BuildEntity рдФрд░ BuildEntityInGroup рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ редрдпрд╣ рд╣рдореЗрд╢рд╛ BuildEntityInGroup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп BuildEntity рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: IEnumerator IntervaledTick() {
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ, рд╡реЗ Svelto.ECS рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг, рдореИрдВ BuildEntityInGroup рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реЛрдмреЛрдХреНрд░рд╛рдлреНрдЯ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЬрди рдЬреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреНрдпреВрдмреНрд╕ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЦреЗрд▓ рдореЗрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреНрдпреВрдмреНрд╕ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреВрдмреНрд╕ рдХрд┐рд╕ рд╡рд╛рд╣рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрдпреВрдмреНрд╕ рдХреЛ рддреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рдЬрд╣рд╛рдВ рдорд╢реАрди рдЖрдИрдбреА рд╕рдореВрд╣ рдЖрдИрдбреА рд╣реИред рдпрд╣ рд╣рдореЗрдВ рд╢рд╛рдВрдд рдЪреАрдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╣реА рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ рдПрдХ рдорд╢реАрди рдкрд░ рдПрдХ Svelto.Tasks рдХрд╛рд░реНрдп рдЪрд▓рд╛рдирд╛, рдЬреЛ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИредрдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ... рдЯрд┐рдкреНрдкрдгреА рд╕реЗ (рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ):рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдХрднреА рднреА MonoBeviour Imprementors рди рдмрдирд╛рдПрдВред рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕реЗрд╡рд╛ рдкрд░рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рд╛рдн рдХрдИ рд╣реИрдВ, рдЗрд╕ рддрдереНрдп рд╕рд╣рд┐рдд рдХрд┐ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рд╕реЗрд╡рд╛ рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдореБрдЦреНрдп рд▓реВрдк рдХреЗ рдмрд╛рд╣рд░ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдЗрд╕ рдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдЬрд┐рд╕ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рдХрднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИредрдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВ рдореЛрдиреЛрдмреЛрд╣реЗрд╡рд┐рдпрд░ рд╕реЗ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрд▓рд╕реА рдПрдирдХреЛрдбрд░ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рдореЛрдиреЛрдмреЗрд╣реЛрд░ рд░реАрдб-рдУрдирд▓реА рд╕реАрд░реАрдХреЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдмрдирд╛рдпрд╛ред рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдпрджрд┐ рд╣рдо рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдЕрдореВрд░реНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдЬреЛрдВрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рд╕реЗрд╡рд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЗрдХрд╛рдИ рдШрдЯрдХ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрд░ рдкрдврд╝реЗрдВредSvelto.ECS рдкрд░ рд╕рдВрдЪрд╛рд░
рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрднреА рднреА рдХрд┐рд╕реА рдИрд╕реАрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдорд╛рдирдХреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рд╣реИред рдпрд╣ рдПрдХ рдФрд░ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реЛрдЪрд╛, рдФрд░ Svelto.ECS рдЗрд╕реЗ рджреЛ рдирдП рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░рд╛ рддрд░реАрдХрд╛ рдорд╛рдирдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ / рдЕрд╡рд▓реЛрдХрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИредDispatchOnSet / DispatchOnChange
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рдбреЗрдЯрд╛ рдкреЛрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдЯрд┐рдЯреА рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИред DispatchOnSet рдФрд░ DispatchOnChange рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрджрд░реНрдн (рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░) рд╣реИрдВ рдЬреЛ рдХрд┐ Entity Components рдХреЗ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ T рдХрд╛ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдирд╛рдо рдПрдХ рдЗрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреА рддрд░рд╣ рд▓рдЧрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдзрдХреЗрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдбреЗрдЯрд╛ рдкреЛрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛ рд╣реИред рдпрд╣ рд╕рдм, рдХрднреА-рдХрднреА рдорддрджрд╛рди рдбреЗрдЯрд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред DispatchOnSet рдФрд░ DispatchOnChangeрдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдШрдЯрдирд╛ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓реЙрдиреНрдЪ рдлрд╝рдВрдХреНрд╢рди рднреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрди рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд░рдЦреЗ рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдореВрд▓реНрдп рд╕реЗрдЯ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреАрд╡рди рд░рдХреНрд╖рд╛ рдХреЛрдб рдХреЛрдИ рдмрдбрд╝реА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХреИрд╕реЗ рдПрдХ рдмреВрд▓рд┐рдпрди рдХреНрд╖реЗрддреНрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ targetHit рдХреА IGunHitTargetComponent ред DispatchOnSet рдФрд░ DispatchOnChange рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдж рдХреА рдШрдЯрдирд╛ рдХреЗрд╡рд▓ рдЙрд╕ рд╕рдордп рдлрд╛рдпрд░ рдХрд░рддреА рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрд╢рд╛ рдкреВрд░реНрд╡редрдЕрдиреБрдХреНрд░рдордХ
рдЖрджрд░реНрд╢ рдЗрдВрдЬрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕ рдЗрдВрдЬрди рдХреЗ рддрд░реНрдХ рдХреЛ Svelto.Tasks рдФрд░ IEnumerators рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрдВрдЬрди рдХреЛ рдЕрдиреНрдп рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЗрдХрд╛рдИ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдкреИрдЯреЛрдСрдирд╕реЗрдЯ рдФрд░ рдбрд┐рд╕реНрдкреИрдЪрдСрдирдЪреЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗрд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ "рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд" рд╣реЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдЗрдВрдЬрдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╕рдЦреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореГрддреНрдпреБ рд╣рдореЗрд╢рд╛ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рд╣реЛред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрдХреНрд░рдо рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдмрд▓реНрдХрд┐ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднреА рд╣реИ! рдЕрдиреБрдХреНрд░рдо рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, "рдКрд░реНрдзреНрд╡рд╛рдзрд░" рдЗрдВрдЬрдиреЛрдВ рдФрд░ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдмреАрдЪ "рдХреНрд╖реИрддрд┐рдЬ" рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП IEnumerator Svelto рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдкреНрд░реЗрдХреНрд╖рдХ / рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛
рдореИрдВрдиреЗ рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╣рд╛рдВ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдпрд╛ рдХреЛрдб рдЬреЛ Svelto.ECS рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ Svelto.ECS рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдкреИрдЯрд░реНрди рдХреЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Svelto.ECS рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдбрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдФрд░ рд╕реАрдХреНрд╡реЗрдВрд╕рд░ рдЖрдорддреМрд░ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред