рдПрдХрддрд╛ 3 рдбреА рдЯреИрдВрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ рдХреЗ рдкрд╣рд┐рдпреЗ (рд╕рдмрдХ 2. рдЯреНрд░реИрдХ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ рдХреЗ рдкрд╣рд┐рдпреЗ)

рдкрд╛рда 1 <<

рдЫрд╡рд┐

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рдореИрдВ рдШрд░ рдкрд░ рдЯреИрдВрдХ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдкрд░ рд╕рдмрдХ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдореЗрдВ, рдЖрдкрдиреЗ рдПрдХрддрд╛ рдкрд░ рд╡рд╛рд╣рди рдЪрд▓рд╛рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦреАрдВ, рдЗрд╕ рдкрд╛рда рдореЗрдВ рд╣рдо рд╡рд╣реА рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдк рдЗрд╕ рдбреЗрдореЛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

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

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

1. рдЯреНрд░реИрдХ рдореЙрдбрд▓рд┐рдВрдЧ рддрдХрдиреАрдХ


рдпрд╣ рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рддрд░реАрдХреЛрдВ рдХреЛ рдХреИрдЯрд░рдкрд┐рд▓рд░ рдЖрдВрджреЛрд▓рди рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЯреВрдЯ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдЗрд╕ рдмрд╛рдд рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдЗрдВрдЬрди рдкрд░ рд╣рдо рдЕрдкрдиреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрдВ рдХреНрдпрд╛ рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпреВрдирд┐рдЯреА 3 рдбреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рджреЛ рдкрд░рд┐рджреГрд╢реНрдп рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
  1. рд╣рдо рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдПрдХ рдХрдорд▓рд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:
    (рдЕрдзрд┐рдХрддрдо 3ds)
    рдЫрд╡рд┐

    рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реИрдХ рдХреЛ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдЧрддрд┐ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдЧрд▓реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, Collider class Raycast () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд▓рд╛рдХреЗ рдХреА рдЕрдирд┐рдпрдорд┐рддрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреНрд░реИрдХ рд╡рд┐рд░реВрдкрдг рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреА рдПрдХ рдмреАрдо рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХрд░рддрд╛ рд╣реИред
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд╛рдн: рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХрд╛ рдЙрдЪреНрдЪ рд╡рд┐рд╡рд░рдг, рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХрд╛ рдЙрдЪреНрдЪ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЖрдВрджреЛрд▓рдиред
    рдиреБрдХрд╕рд╛рди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрдЯрд┐рд▓рддрд╛, рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреЙрд╡рд░ рдкрд░ рднрд╛рд░ рдЪреВрдВрдХрд┐ рдкрдЯрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд░реЗрдХрд╛рд╕реНрдЯ () рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреА, рдЕрдЧрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рддреЛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИред
    рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рдХреНрдпреЛрдВрдХрд┐ Gamedev рдордВрдЪреЛрдВ рдЪрдврд╝рддреЗ рджреВрд╕рд░реЗ рдкрд╛рдпрд╛ред
  2. рд╣рдо рдПрдХ рдирд┐рд░рдВрддрд░ рдЯреЗрдк рдХреЗ рд╕рд╛рде рдПрдХ рдХрдорд▓рд╛ рдореЙрдбрд▓ рдХрд░рддреЗ рд╣реИрдВ:
    (рдЕрдзрд┐рдХрддрдо 3ds)


    рдлрд┐рд░ рд╣рдо рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкрдЯрд░рд┐рдпреЛрдВ рдХреА рджреЛрд╣рд░рд╛рдИ рдЧрдИ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

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

рддреЛ, рд╣рдо рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдЪреБрдирддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рдХреИрдЯрд░рдкрд┐рд▓рд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ:
(рдЕрдзрд┐рдХрддрдо 3ds)




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

рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╣рдбреНрдбреА рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдШреВрдордирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЦреЛрд▓ рджреЗрддреЗ рд╣реИрдВ, рдЕрдм рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
(рдЕрдзрд┐рдХрддрдо 3ds)


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

2. рдПрдХ рдореЙрдбрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ


рдЗрд╕рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдореЙрдбрд▓ рдФрд░ рдмрдирд╛рд╡рдЯ рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрд╕реЗрдЯреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдпрд╛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдЕрдкрдиреЗ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдФрд░ рдмрдирд╛рд╡рдЯ рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ рддрд╛рдХрд┐ рдмрдирд╛рд╡рдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдУрд╡рд░рд▓реИрдк рд╣реЛ рдЬрд╛рдП рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЖрдк рдкрдЯрд░рд┐рдпреЛрдВ рдкрд░ рдмрдирд╛рд╡рдЯ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░реВрдк рд╕реЗ рдордВрдЪ рдкрд░ рдореЙрдбрд▓ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рджреЗрдЦреЗрдВ), рдпрд╛ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдмрд╕ рдкрдЯрд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ (рдЙрдиреНрд╣реЗрдВ Track_line_left рдФрд░ Track_line_right рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред ), рдлрд┐рд░ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдСрди рдЯреЗрдХреНрд╕рдЪрд░ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдЬрд╛рдПрдВ, рд╕реЗрд▓реЗрдХреНрдЯ рдмрдЯрди рджрдмрд╛рдПрдВ рдФрд░ рдЯреНрд░реИрдХ рдЯреЗрдХреНрд╕рдЪрд░ рдЪреБрдиреЗрдВред
рдЫрд╡рд┐
рдкрдЯрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 2 рдХреЗ рдмрд░рд╛рдмрд░ y рдкрд░ рдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВред

рдЕрдм рдПрдХ рдирдИ C # рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ (Assets -> Create -> C Sharp Script), рдЗрд╕реЗ рдЯреИрдВрдХрдЯреНрд░реИрдХрдХрдВрдЯреНрд░реЛрд▓рд░ рдирд╛рдо рджреЗрдВ, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдЙрди рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

using UnityEngine; using System.Collections; using System.Collections.Generic; //1 public class TankTrackController : MonoBehaviour { public GameObject wheelCollider; //2 public float wheelRadius = 0.15f; //3 public float suspensionOffset = 0.05f; //4 public float trackTextureSpeed = 2.5f; //5 public GameObject leftTrack; //6 public Transform[] leftTrackUpperWheels; //7 public Transform[] leftTrackWheels; //8 public Transform[] leftTrackBones; //9 public GameObject rightTrack; //6 public Transform[] rightTrackUpperWheels; //7 public Transform[] rightTrackWheels; //8 public Transform[] rightTrackBones; //9 public class WheelData { //10 public Transform wheelTransform; //11 public Transform boneTransform; //12 public WheelCollider col; //13 public Vector3 wheelStartPos; //14 public Vector3 boneStartPos; //15 public float rotation = 0.0f; //16 public Quaternion startWheelAngle; //17 } protected WheelData[] leftTrackWheelData; //18 protected WheelData[] rightTrackWheelData; //18 protected float leftTrackTextureOffset = 0.0f; //19 protected float rightTrackTextureOffset = 0.0f; //19 } 

  1. рд╣рдо рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдореЗрдВ рдЖрдПрдВрдЧреЗред
  2. рд╣рдо рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЗ рдкреНрд░реАрдлреИрдм рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдХреЗ рдЖрдЗрдЯрдо 2 рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ)ред
  3. рд╣рдорд╛рд░реЗ рдкрд╣рд┐рдпреЛрдВ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ред
  4. рдЬрдм рдпрд╣ рд╕рддрд╣ рдХреЛ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд╣рд┐рдпрд╛ рдХреА рдСрдлрд╕реЗрдЯред
  5. рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХреА рдЧрддрд┐ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрдирд╛рд╡рдЯ рдХреЗ рд╡рд┐рд╕реНрдерд╛рдкрди рдХреА рдЧрддрд┐)
  6. рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рдЯреНрд░реИрдХред
  7. рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдКрдкрд░реА рдкрд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
  8. рдкрд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВрдиреЗ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдирд╣реАрдВ рдХреА рдереА, рд╡реЗ рдкрд╣рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕реАрдзреЗ рд╣рдорд╛рд░реЗ рдкрд╣рд┐рдпреЛрдВ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рди рдХрд░реЗрдВ рдкреНрд▓реЗ рдмрдЯрди рдкрд░, рдЙрдиреНрд╣реЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
  9. рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреИрдЯрд░рдкрд┐рд▓рд░ рд╕реЗ рдЬреБрдбрд╝реА рд╣рдбреНрдбрд┐рдпрд╛рдВред
  10. рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ (рдЕрдкрд░рд╣реЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН:
  11. рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛;
  12. рдХреИрдЯрд░рдкрд┐рд▓рд░ рд╕реЗ рдЬреБрдбрд╝реА рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рд╣рдбреНрдбреА;
  13. рд╡реНрд╣реАрд▓рдЪреЗрдпрд░ рдкрд╣рд┐рдпреЛрдВ;
  14. рдкрд╣рд┐рдпрд╛ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐;
  15. рд╣рдбреНрдбреА рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐;
  16. рд╡реНрд╣реАрд▓ рд░реЛрдЯреЗрд╢рди рдХреЛрдг;
  17. рдкрд╣рд┐рдП рдХреЗ рдШреВрдордиреЗ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЛрдгред
  18. рд╣рдо рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрд░рдХреНрд╖рд┐рдд рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХреЗрдВред
  19. рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЙрди рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрдирд╛рд╡рдЯ рдХреА рд╡рд░реНрддрдорд╛рди рдСрдлрд╕реЗрдЯ рдХреЛ рдЯреНрд░реИрдХ рдкрд░ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░реЗрдВрдЧреЗред

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

рдЯреИрдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╣реА рдЬрд╛рдПрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд┐рд░реНрдл рд╕рдВрд▓рдЧреНрди рд╣реИ, рд╡рд╣рд╛рдВ рдПрдХ рдПрдиреАрдореЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЫрд╡рд┐

рдЗрд╕рдХреЗ рдмрд╛рдж, WheelCollider рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░реАрдлрд╝реИрдм рдмрдирд╛рдПрдВ (рд╣рдо рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдХреЗ рдЖрдЗрдЯрдо 2 рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ), рдореИрдВрдиреЗ рдЗрд╕реЗ рдЯреИрдВрдХ_рдХреЛрд▓рд╛рдЗрдбрд░ рдХрд╣рд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗред
рдЫрд╡рд┐

рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЦреАрдВрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирдП рдмрдирд╛рдП рдЧрдП рдкреНрд░реАрдлрд╝реИрдм рдХреЛ рдЦреАрдВрдЪреЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдмрд╛рдПрдВ рдЯреНрд░реИрдХ рдФрд░ рд░рд╛рдЗрдЯ рдЯреНрд░реИрдХ рдлрд╝реАрд▓реНрдб рдкрд░ рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВ (рдЙрдиреНрд╣реЗрдВ Track_line_left рдФрд░ Track_line_right рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдлрд┐рд░ рдКрдкрд░реА рдкрд╣рд┐рдП (рдЕрдкрд░_рд╡реНрд╣реАрд▓ [рд╕рдВрдЦреНрдпрд╛] _left, рдЕрдкрд░_рд╡реНрд╣реАрд▓ [рд╕рдВрдЦреНрдпрд╛] _right), рд▓реЗрдлреНрдЯ рдЯреНрд░реИрдХ рдКрдкрд░реА рдкрд╣рд┐рдпреЛрдВ рдФрд░ рджрд╛рдПрдВ рдЯреНрд░реИрдХ рдКрдкрд░реА рдкрд╣рд┐рдпреЛрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВред рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд┐рдпреЛрдВ рдФрд░ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╣рд┐рдпреЛрдВ рдХреЛ rowheel_ [рд╕рдВрдЦреНрдпрд╛] _right рдФрд░ rowheel_ [рд╕рдВрдЦреНрдпрд╛] _left рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХрд╛ рд╕рд╕реНрдкреЗрдВрд╢рди_рдмреЛрди [рд╕рдВрдЦреНрдпрд╛] _left рдФрд░ рдирд┐рд▓рдВрдмрди_bone [рд╕рдВрдЦреНрдпрд╛] _right) рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдкрд╣рд┐рдпреЛрдВ рдФрд░ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрд┐рдирд╛, рдФрд░ рдЪреЗрди_рдмреЛрди [рд╕рдВрдЦреНрдпрд╛] _left рдФрд░ Chain_bone [рд╕рдВрдЦреНрдпрд╛] _right рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВ, рдареАрдХ рд╣реИ, рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХрд╛ рд╕реНрдереИрддрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рдЙрдирд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдЖрдЦрд┐рд░ рдореЗрдВ рдХреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЫрд╡рд┐

рдЕрдЧрд▓рд╛, рдЯреИрдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ Rigidbody рдЬреЛрдбрд╝реЗрдВ:
рдЫрд╡рд┐

рдлрд┐рд░ рдкрддрд▓реЗ рдмрдЪреНрдЪреЗ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЯреИрдВрдХ рдмреЙрдбреА) рдХреЛ рдвреВрдВрдвреЗрдВ, рдЗрд╕рдореЗрдВ рдПрдХ рдореЗрд╖ рдХреЛрд▓рд╛рдЗрдбрд░ рдЬреЛрдбрд╝реЗрдВ (рдШрдЯрдХ -> рднреМрддрд┐рдХреА -> рдореЗрд╖ рдХреЛрд▓рд╛рдЗрдбрд░), рдФрд░ рдЙрддреНрддрд▓ рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ (рдЗрд╕ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд╖ рдХреЛрд▓рд╛рдЗрдбрд░ рдЯреИрдВрдХ рдмреЙрдбреА рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╕рднреА рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдкрдиреА рдЦреБрдж рдХреА рдЬрд╛рд▓реА рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХрддрдо 255 рддреНрд░рд┐рдХреЛрдг рд╣реЛрдВрдЧреЗ)ред

3. рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдФрд░ рд╡реНрд╣реАрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ


рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЖрд░рдВрднрд┐рдХ рд╣реИрдВ, рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдкрд╣рд┐рдПрджрд╛рд░рдЯрд╛ рдореЗрдВ рдкрд╣рд┐рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реБрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ [] leftTrackWheelData рдФрд░ WheelData [] rightTrackWheelData рд╕рд░рдгрд┐рдпреЛрдВред рд╣рдо рдЗрд╕реЗ рдЕрд╡реЗрдХ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╡реНрд╣реАрд▓рдбреЗрдЯрд╛ рд╕реЗрдЯрдЕрдкрд╡реНрд╣реАрд▓реНрд╕ () рдШреЛрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рднреА рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЯрд╛рдЗрдк рд╡реНрд╣реАрд▓рдбреЗрдЯрд╛ рдХрд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 void Awake() { leftTrackWheelData = new WheelData[leftTrackWheels.Length]; //1 rightTrackWheelData = new WheelData[rightTrackWheels.Length]; //1 for(int i=0;i<leftTrackWheels.Length;i++){ leftTrackWheelData[i] = SetupWheels(leftTrackWheels[i],leftTrackBones[i]); //2 } for(int i=0;i<rightTrackWheels.Length;i++){ rightTrackWheelData[i] = SetupWheels(rightTrackWheels[i],rightTrackBones[i]); //2 } Vector3 offset = transform.position; //3 offset.z +=0.01f; //3 transform.position = offset; //3 } WheelData SetupWheels(Transform wheel, Transform bone){ //2 WheelData result = new WheelData(); GameObject go = new GameObject("Collider_"+wheel.name); //4 go.transform.parent = transform; //5 go.transform.position = wheel.position; //6 go.transform.localRotation = Quaternion.Euler(0,wheel.localRotation.y,0); //7 WheelCollider col = (WheelCollider) go.AddComponent(typeof(WheelCollider));//8 WheelCollider colPref = wheelCollider.GetComponent<WheelCollider>();//9 col.mass = colPref.mass;//10 col.center = colPref.center;//10 col.radius = colPref.radius;//10 col.suspensionDistance = colPref.suspensionDistance;//10 col.suspensionSpring = colPref.suspensionSpring;//10 col.forwardFriction = colPref.forwardFriction;//10 col.sidewaysFriction = colPref.sidewaysFriction;//10 result.wheelTransform = wheel; //11 result.boneTransform = bone; //11 result.col = col; //11 result.wheelStartPos = wheel.transform.localPosition; //11 result.boneStartPos = bone.transform.localPosition; //11 result.startWheelAngle = wheel.transform.localRotation; //11 return result; //12 } 

  1. рд╣рдо рдПрд░реЗ рдХреЗ рдЖрдпрд╛рдо рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
  2. рд╣рдо рдЗрди рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рднрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде SetupWheels () рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред
  3. рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдкреНрд▓реЗ рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛, рддреЛ рдХреЛрд▓рд╛рдбрд░ рд▓рдЧрд╛рддрд╛рд░ рднреВрдорд┐рдЧрдд рд╣реЛ рдЧрдП, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХреЗрд╡рд▓ рдЯреИрдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рд╛рдХрд░ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдпреЗ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВред
  4. рдПрдХ рдирдпрд╛ рдЦрд╛рд▓реА GameObject рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо Collider_ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдпреБрдХреНрдд рд╣реЛрдЧрд╛ред
  5. рд╣рдо рдирдИ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреИрдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛)ред
  6. рд╣рдо рдирд╡ рдирд┐рд░реНрдорд┐рдд рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд┐рдпрд╛ рд╣реИред
  7. рд╣рдо рд╡рд╛рдИ рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрд╕реА рдХреЛрдг рд╕реЗ рдШреБрдорд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╡рд░реНрддрдорд╛рди рдкрд╣рд┐рдпрд╛ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  8. рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдШрдЯрдХ рдХреЛ рд╣рдорд╛рд░реЗ рдЦрд╛рд▓реА GO рдкрд░ рдЬреЛрдбрд╝реЗрдВред
  9. рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
  10. рд╣рдо рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирдП рдмрдирд╛рдП рдЧрдП рд╡реНрд╣реАрд▓ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдерд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдХреЗрд╡рд▓ col = colPref рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрд▓рд╛рдЗрдбрд░ рд░рд╣рддреЗ рд╣реИрдВ)ред
  11. рд╣рдо рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рдмрд╛рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреЗ рд╣реИрдВред
  12. рд╣рдо рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред

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

4. "рд░рд┐рд╡рд╛рдЗрд╡" рдкрд╣рд┐рдпреЛрдВ рдФрд░ рдЯреНрд░реИрдХ


рдкрд╣рд▓реЗ рдкрд╛рда рд╕реЗ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдШреБрдорд╛рдиреЗ рдФрд░ рдЗрд▓рд╛рдХреЗ рдХреА рдЕрдирд┐рдпрдорд┐рддрддрд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╕рд┐рдЦрд╛ рдЬрд╛рдП, рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдПрдХ рдпрд╛рддреНрд░реА рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреЗ рдкрд╣рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрддрд┐ рд╕реЗ рдШреВрдо рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЯреИрдВрдХ рдореЗрдВ рдЕрд▓рдЧ рд░реЛрд▓рд░реНрд╕ рд╣реИрдВред рдХреИрдЯрд░рдкрд┐рд▓рд░ рдЙрд╕реА рдЧрддрд┐ рд╕реЗ рдШреВрдорддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдФрд╕рдд рдЧрддрд┐ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдЕрднреА рднреА рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХреА рдмрдирд╛рд╡рдЯ рдХреА рдЧрддрд┐ рдХреЛ рдЗрд╕ рдЧрддрд┐ рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓реЛ рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:
 void FixedUpdate(){ UpdateWheels(); //1 } public void UpdateWheels(){ //1 float delta = Time.fixedDeltaTime; //2 float trackRpm = CalculateSmoothRpm(leftTrackWheelData); //3 foreach (WheelData w in leftTrackWheelData){ //4 w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); //5 w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); //6 w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); //7 w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); //8 } leftTrackTextureOffset = Mathf.Repeat(leftTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); //9 leftTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-leftTrackTextureOffset)); //10 trackRpm = CalculateSmoothRpm(rightTrackWheelData); //3 foreach (WheelData w in rightTrackWheelData){ //4 w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); //5 w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); //6 w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); //7 w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); //8 } rightTrackTextureOffset = Mathf.Repeat(rightTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); ///9 rightTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-rightTrackTextureOffset)); //10 for(int i=0;i<leftTrackUpperWheels.Length;i++){ //11 leftTrackUpperWheels[i].localRotation = Quaternion.Euler(leftTrackWheelData[0].rotation, leftTrackWheelData[0].startWheelAngle.y, leftTrackWheelData[0].startWheelAngle.z); //11 } for(int i=0;i<rightTrackUpperWheels.Length;i++){ //11 rightTrackUpperWheels[i].localRotation = Quaternion.Euler(rightTrackWheelData[0].rotation, rightTrackWheelData[0].startWheelAngle.y, rightTrackWheelData[0].startWheelAngle.z); //11 } } private float CalculateSmoothRpm(WheelData[] w){ //12 float rpm = 0.0f; List<int> grWheelsInd = new List<int>(); //13 for(int i = 0;i<w.Length;i++){ //14 if(w[i].col.isGrounded){ //14 grWheelsInd.Add(i); //14 } } if(grWheelsInd.Count == 0){ //15 foreach(WheelData wd in w){ //15 rpm +=wd.col.rpm; //15 } rpm /= w.Length; //15 }else{ //16 for(int i = 0;i<grWheelsInd.Count;i++){ //16 rpm +=w[grWheelsInd[i]].col.rpm; //16 } rpm /= grWheelsInd.Count; //16 } return rpm; //17 } private Vector3 CalculateWheelPosition(Transform w,WheelCollider col,Vector3 startPos){ //18 WheelHit hit; Vector3 lp = w.localPosition; if (col.GetGroundHit(out hit)) { lp.y -= Vector3.Dot(w.position - hit.point, transform.up) - wheelRadius; }else { lp.y = startPos.y - suspensionOffset; } return lp; } 

  1. рд╣рдо рдлрд┐рдХреНрд╕реНрдбрдЕрдкрдбреЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдбреЗрдЯрд╡реНрд╣реАрд▓ () рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреЛрдг рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред
  2. рд╕рдмрдХ 1 рджреЗрдЦреЗрдВред
  3. рдлрд╝рдВрдХреНрд╢рди CalculateSmoothRpm () рдкрд╣рд┐рдпреЛрдВ рдХреА рдФрд╕рдд рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ (рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдКрдВрдЧрд╛) рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдЧрддрд┐ рд╕реЗ рдШреВрдореЗрдВ, рд╣рдо рдкреВрд░реЗ рд╡рд╛рдордЯреНрд░реИрдХрд╡реНрд╣реЗрд▓рдбреИрдЯ [] рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд░рд╛рдЗрдЯрдЯреНрд░реИрдХрд╡реНрд╣реЗрд▓рдбрд╛рдЯрд╛ [] рд╕рд░рдгреАред
  4. рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ:
  5. рд╣рдо рд╡рд╛рдИ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпрд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреИрд▓рдХреНрд▓реЗрдЯрд╡реЗрд▓рдкреЛрд╕рд┐рд╢рди () (рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдг) рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рд┐рдпрд╛ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░, рдЙрд╕рдХреЗ рд╡реНрд╣реАрдХреНрд▓реЙрдЗрдбрд░, рдФрд░ рдЗрд╕рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ;
  6. рдПрдХ рд╣реА рд╕рдВрдЪрд╛рд▓рди, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░ рд╣рдбреНрдбреА рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ;
  7. рд╣рдо рдкрд╣рд┐рдпрд╛ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдмрдХ 1 рджреЗрдЦреЗрдВ), рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╣рдо рдХреЙрдЗрдбрд░ рдХреА рдЖрд░рдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдФрд╕рдд рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдЬреЛ рдкрд╣рд▓реЗ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдереА;
  8. рдЪрдХреНрд░ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рд╕реНрдерд╛рдиреАрдп рдХреЛрдг рдкрд░ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рд░реЛрдЯреЗрд╢рди рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рд╕рдмрдХ 1 рджреЗрдЦреЗрдВ)ред
  9. рд╣рдо рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХреА рдмрдирд╛рд╡рдЯ рдХреА рднрд░рдкрд╛рдИ рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕реВрддреНрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рд╣рдореЗрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рдШреБрдорд╛рдиреЗ рдФрд░ рдЙрд╕реА рдЧрддрд┐ рд╕реЗ рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ trackTextureSpeed тАЛтАЛ(рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд╣рд┐рдпрд╛ рдФрд░ рдХреИрдЯрд░рдкрд┐рд▓рд░ рд╕рдорд╛рди рдЧрддрд┐ рд╕реЗ рдЪрд▓реЗ рдЧрдПред
  10. Y рд╕рдордиреНрд╡рд┐рдд (рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ 2 (0 -leftTrackTextureOffset)) рдХреЗ рдХреИрдЯрд░рдкрд┐рд▓рд░ рдСрдлрд╝рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, GO leftTrack рдФрд░ рджрд╛рдПрдБ рд╣рд╛рде рдХреА рдмреИрд░рдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рдХреА рдореБрдЦреНрдп рдмрдирд╛рд╡рдЯ ("_MainTex")ред
  11. рд╣рдо рдЙрди рдКрдкрд░реА рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирд╕реЗ WheelColliders рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд╣рд┐рдпрд╛ рд╕реЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ рдЙрдзрд╛рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдПрдХ рд╣реА, рдЕрдм рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред
  12. рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рдореЗрдВ рдХреИрд▓рдХреБрд▓реЗрдЯрд╕реНрдореВрдердЖрд░рдкреАрдПрдо () рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рд╛, рдЬреЛ рдХрд┐ рд╡реНрд╣реАрд▓рдбреИрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдореВрд▓ рдирд╛рдо w рдХреЛ рд╕рд╣рди рдХрд░рддрд╛ рд╣реИред
  13. рд╣рдо рдПрдХ рдирдИ рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рд░рдгреА рдбрдмреНрд▓реНрдпреВ рдХреЗ рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд╕реВрдЪрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдЕрдВрджрд░ рд╡реНрд╣реАрдХреНрд▓реЙрдЗрдбрд░ рдХреЛрд▓реЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рддрд╣ (рдЯреЗрд░реНрд░рд╛рди) рдХреЛ рдЫреВ рд░рд╣рд╛ рд╣реИред
  14. рд╣рдо рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЛрд▓реЗрдбрд░ рд╕рддрд╣ рдХреЛ рдЫреВрддреЗ рд╣реИрдВред
  15. рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рдХреЛрдИ рднреА рдХреЛрд▓рд╛рдбрд░ рдЬрдореАрди рдХреЛ рдирд╣реАрдВ рдЫреВрддрд╛ рд╣реИ, рддреЛ рд╕рд░рдгреА рдбрдмреНрд▓реНрдпреВ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдЖрд░рдкреАрдПрдо рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВ, рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рдХреЛ рд╕рд░рдгреА рдбрдмреНрд▓реНрдпреВ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдФрд╕рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  16. рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реВрдЪреА рдХреЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рддрддреНрд╡ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрд▓рд╛рдЗрдбрд░ рдЬрдореАрди рдХреЛ рдЫреВрддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдЗрди рдХреЛрд▓рд╛рдЗрдбрд░ рдХреА рдЧрддрд┐ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред
  17. рд╣рдо рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред (рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╢реНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдЬрдореАрди рдХреЛ рдЫреВрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрд▓рд╛рдЗрдбрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди рдХреНрдпреЛрдВ, рдФрд░ рдЖрдк рд╕рднреА рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдФрд╕рдд рдЧрддрд┐ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЬрд╡рд╛рдм рд╣реЛрдорд╡рд░реНрдХ рд╣реИ: (рдФрд░ рдмреЗрд╣рддрд░ рдкреНрд░рдпреЛрдЧ) рд╕реЛрдЪреЗрдВ рдХрд┐ рдлрд┐рд░ рдЗрд╕рдореЗрдВ рдкрд╣рд┐рдП рдХреИрд╕реЗ рдШреВрдореЗрдВрдЧреЗ? рд╕реНрдерд┐рддрд┐:
    рдЫрд╡рд┐
  18. рдлрд╝рдВрдХреНрд╢рди рдХреИрд▓рдХреБрд▓реЗрдЯрд╡реЗрд▓рдкреЙрдЬрд╝рд┐рд╢рди () рдЬреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрд╣реАрд▓ (рдпрд╛ рдмреЛрди) рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЛ рд▓реЗрддрд╛ рд╣реИ, рд╡реНрд╣реАрд▓рдЪреЗрдпрд░ рдХреЗ рджреВрд╕рд░реЗ рдХреЛ, рдФрд░ рд╡реНрд╣реАрд▓ (рдпрд╛ рд╣рдбреНрдбреА) рдХреА рд╢реБрд░реБрдЖрддреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЛ рддреАрд╕рд░рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд┐рдпрд╛ (рдпрд╛ рд╣рдбреНрдбреА) рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдкрд╛рда рдореЗрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрд╛рдВрдЪ рдХреА рдереАред

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

5. рд╕рд╡рд╛рд░реА рдХрд░рдирд╛ рд╕реАрдЦрдирд╛


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

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

рдореИрдВрдиреЗ рд╕рд░рд▓рддрдо рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдЯреИрдВрдХ рдХреЛ рдореМрдХреЗ рдкрд░ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдФрд░ рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 public float rotateOnStandTorque = 1500.0f; //1 public float rotateOnStandBrakeTorque = 500.0f; //2 public float maxBrakeTorque = 1000.0f; //3 void FixedUpdate(){ float accelerate = 0; float steer = 0; accelerate = Input.GetAxis("Vertical"); //4 steer = Input.GetAxis("Horizontal"); //4 UpdateWheels(accelerate,steer); //5 } public void UpdateWheels(float accel,float steer){ //5 float delta = Time.fixedDeltaTime; float trackRpm = CalculateSmoothRpm(leftTrackWheelData); foreach (WheelData w in leftTrackWheelData){ w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); CalculateMotorForce(w.col,accel,steer); //6 } leftTrackTextureOffset = Mathf.Repeat(leftTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); leftTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-leftTrackTextureOffset)); trackRpm = CalculateSmoothRpm(rightTrackWheelData); foreach (WheelData w in rightTrackWheelData){ w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); CalculateMotorForce(w.col,accel,-steer); //6 } rightTrackTextureOffset = Mathf.Repeat(rightTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); rightTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-rightTrackTextureOffset)); for(int i=0;i<leftTrackUpperWheels.Length;i++){ leftTrackUpperWheels[i].localRotation = Quaternion.Euler(leftTrackWheelData[0].rotation, leftTrackWheelData[0].startWheelAngle.y, leftTrackWheelData[0].startWheelAngle.z); } for(int i=0;i<rightTrackUpperWheels.Length;i++){ rightTrackUpperWheels[i].localRotation = Quaternion.Euler(rightTrackWheelData[0].rotation, rightTrackWheelData[0].startWheelAngle.y, rightTrackWheelData[0].startWheelAngle.z); } } public void CalculateMotorForce(WheelCollider col, float accel, float steer){ //6 if(accel == 0 && steer == 0){ //7 col.brakeTorque = maxBrakeTorque; //7 }else if(accel == 0.0f){ //8 col.brakeTorque = rotateOnStandBrakeTorque; //9 col.motorTorque = steer*rotateOnStandTorque; //10 } } 

  1. рдЯреЙрд░реНрдХ рдЬрд┐рд╕ рдЬрдЧрд╣ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рд╣рдо рдЯреЙрд░реНрдХ рдХреЛ рдкрд╣реБрдВрдЪрд╛рдПрдВрдЧреЗред
  2. рдЬрдм рд╣рдо рдЯреИрдВрдХ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдореЛрдореЗрдВрдЯ рд╣рдо рдХреЛрд▓рд╛рдЗрдбрд░ рдореЗрдВ рднреЗрдЬ рджреЗрддреЗ рд╣реИрдВред
  3. рдЕрдзрд┐рдХрддрдо рдмреНрд░реЗрдХрд┐рдВрдЧ рдЯреЙрд░реНрдХред
  4. рд╕рдмрдХ 1 рджреЗрдЦреЗрдВред
  5. рд╣рдо UpdateWheels () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рд╕реЗ рдорд╛рди рд▓реЗ рд╕рдХреЗред
  6. рд╣рдо CollateMotorForce () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЯрдХрд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЯреЙрд░реНрдХ рдФрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рдХреНрд╖рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЛрд▓рд╛рдЗрдбрд░ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ (рдмрд╛рдПрдВрдЯреНрд░реИрдХрд╡реЗрд▓реНрдбрд╛рдЯрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд╖реИрддрд┐рдЬ рдЕрдХреНрд╖ рд╕реЗ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд░рд╛рдЗрдЯрдЯреНрд░реИрдХрд╡реЗрд▓реНрдбрд╛ рдХреЗ рд▓рд┐рдП рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) )ред
  7. рдпрджрд┐ рдХреЛрдИ рдЖрдВрджреЛрд▓рди рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рдХрддрдо рдмреНрд░реЗрдХрд┐рдВрдЧ рдЯреЛрдХрд╝ рдХреЛ рдХреЛрд▓рд╛рдЗрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ (рддрд╛рдХрд┐ рдпрд╣ рдЕрд╕рдорд╛рди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд░реЛрд▓ рди рдХрд░реЗрдВ)ред
  8. рдпрджрд┐ рдлрд╝реЙрд░реНрд╡рд░реНрдб рдмрдЯрди рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреБрдЯрдкрд╛рде рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ:
  9. рд╣рдо рдХреЙрд▓рд░ рдХреЛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  10. рд╣рдо рдХреНрд╖реИрддрд┐рдЬ рдЕрдХреНрд╖ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдП рдЧрдП рдЯреЛрдХрд╝ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдЯреЛрдХрд╝ рдЯреИрдВрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдЯреЗрдирд╛рд╕реНрдЯреИрдВрдбрдмреНрд░реИрдХ рдЯреЛрдХрд╝ рдХреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЯреЛрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рддреЛ, Play рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдмрдЧрд╝рд▓ рдХреА рдХреБрдВрдЬреА (A рдпрд╛ D) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдФрд░ рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдЯреИрдВрдХ рдХреЗ рджрдпрдиреАрдп рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдореМрдХреЗ рдкрд░ рдШреВрдордиреЗ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╢рдХреНрддрд┐ рдХреА рдХрдореА рд╣реИред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рд░реЛрдЯрдСрдирд╕реНрдЯреИрдВрдбрдЯреЙрд░реНрдХ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдордЬреЗрджрд╛рд░ рд╣реЛрдЧрд╛ред

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

рдЪрдорддреНрдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░рд╛ рдЯреИрдВрдХ рдкрд╛рдЧрд▓ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЕрдм рд╡рд╣ рд╢реАрд░реНрд╖ рдЧрддрд┐ рд╕реЗ рдШреВрдо рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдЧрд╝рд▓ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рд╣реА рд╣реИ, рдЕрдм рдХреЛрдИ рдкрд╛рд░реНрд╢реНрд╡ рдШрд░реНрд╖рдг рдирд╣реАрдВ рд╣реИред рдЕрдм Play рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдорд╛рди рдХреЛ 0.06 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ Play рдХреЛ рдлрд┐рд░ рд╕реЗ рджрдмрд╛рдПрдБред рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдм рд╣рдорд╛рд░рд╛ рдЯреИрдВрдХ рдЕрдкрдиреА рдзреБрд░реА рдкрд░ рдШреВрдо рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдкреНрд▓реЗ рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдФрд░ 1. рдкрд░ рд╕рд╛рдЗрдбрд╡реЙрд▓ рдШрд░реНрд╖рдг рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рд╕реЗрдЯ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдпрд╣ рд╕рдм рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рд╕реАрдзреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╕рд╛рдЗрдб рдлреНрд░рд┐рдХреНрд╢рди рдирд┐рдпрдВрддреНрд░рдгреАрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЯреИрдВрдХ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╣рд╛рд╡ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЯреИрдВрдХ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдореЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдПрдВрдЧреЗред рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ CalculateMotorForce () рдФрд░ рдХреБрдЫ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 public float forwardTorque = 500.0f; //1 public float rotateOnMoveBrakeTorque = 400.0f; //2 public float minBrakeTorque = 0.0f; //3 public float minOnStayStiffness = 0.06f; //4 public float minOnMoveStiffness = 0.05f; //5 public float rotateOnMoveMultiply = 2.0f; //6 public void CalculateMotorForce(WheelCollider col, float accel, float steer){ WheelFrictionCurve fc = col.sidewaysFriction; //7 if(accel == 0 && steer == 0){ col.brakeTorque = maxBrakeTorque; }else if(accel == 0.0f){ col.brakeTorque = rotateOnStandBrakeTorque; col.motorTorque = steer*rotateOnStandTorque; fc.stiffness = 1.0f + minOnStayStiffness - Mathf.Abs(steer); }else{ //8 col.brakeTorque = minBrakeTorque; //9 col.motorTorque = accel*forwardTorque; //10 if(steer < 0){ //11 col.brakeTorque = rotateOnMoveBrakeTorque; //12 col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//13 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //14 } if(steer > 0){ //15 col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//16 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //17 } } if(fc.stiffness > 1.0f)fc.stiffness = 1.0f; //18 col.sidewaysFriction = fc; //19 if(col.rpm > 0 && accel < 0){ //20 col.brakeTorque = maxBrakeTorque; //21 }else if(col.rpm < 0 && accel > 0){ //22 col.brakeTorque = maxBrakeTorque; //23 } } 

  1. (, ).
  2. .
  3. .
  4. .
  5. .
  6. .
  7. fc WheelFrictionCurve, Sideways Friction Wheel Collider'.
  8. , :
  9. ;
  10. ;
  11. ( , , ) :
  12. ( , );
  13. ( , );
  14. fc.
  15. ( , , ) :
  16. , .
  17. fc.
  18. , , .
  19. sidewaysFriction fs ( col.sidewaysFriction.stiffnes = (float), ).
  20. , :
  21. .
  22. рдпрджрд┐ рдкрд╣рд┐рдП рд╡рд╛рдкрд╕ рдШреВрдорддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЖрдЧреЗ рдХреА рдХреЛ рджрдмрд╛рддреЗ рд╣реИрдВ:
  23. рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВред

рдареАрдХ рд╣реИ, рдпрд╣ рд╕рдм, рдЖрдкрдХрд╛ рдЯреИрдВрдХ рдЕрд▓рд░реНрдЯ рдкрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдЧреЛрд▓реА рдирд╣реАрдВ рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдХреБрдЪрд▓ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles