Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

ΠžΡΠ½ΠΎΠ²Ρ‹ создания 2D пСрсонаТа Π² Unity 3D 4.3. Π§Π°ΡΡ‚ΡŒ 2: Π±Π΅Π³ΡƒΡ‰ΠΈΠΉ пСрсонаТ

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π΅Π»ΠΎ, Π½Π°Ρ‡Π°Ρ‚ΠΎΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части. БСйчас Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ стоящий Π½Π° Π½Π΅ΠΉ пСрсонаТ с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ покоя. Настало врСмя Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ нашСго пСрсонаТа Π±Π΅Π³Π°Ρ‚ΡŒ Π²ΠΏΡ€Π°Π²ΠΎ-Π²Π»Π΅Π²ΠΎ ΠΏΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ сцСну ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ части. Напомню, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ нСсколько спрайтов Π² ΠΏΠ°ΠΏΠΊΡƒ Assets β€” Sprites. На всякий случай, Π²Π½ΠΈΠ·Ρƒ поста Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ссылку Π½Π° спрайты. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ спрайт ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Run. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π±Π΅Π³Π°. Для этого Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ дСйствия ΠΏΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ спрайта Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ создании Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ покоя. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ напомню: выдСляСм спрайт, Π² ΠΎΠΊΠ½Π΅ Inspector устанавливаСм свойство Sprite Mode ΠΊΠ°ΠΊ Multiple, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½ΠΈΠΆΠ΅ Sprite Editor, Π½Π°Ρ€Π΅Π·Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Grid ΠΈΠ»ΠΈ Automatic.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ Hierarchy Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Character ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΎΠΊΠ½ΠΎ Animation. НаТимаСм Π½Π° ΠΏΠΎΠ»Π΅ с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Idle ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Create New Clip, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π³Π°. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ Ρ„Π°ΠΉΠ» Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ Assets β€” Animations ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Run.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Новая созданная анимация Run стала Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π² ΠΎΠΊΠ½Π΅ Animation. Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ спрайт Run Π² ΠΎΠΊΠ½Π΅ Project, выдСляСм всС Ρ„Π°Π»Ρ‹ Run_0… Run_9 ΠΈ пСрСтаскиваСм Π² ΠΎΠΊΠ½ΠΎ Animation. Установим ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Sample Ρ€Π°Π²Π½ΠΎΠ΅ 24.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

ВсС это ΠΌΡ‹ ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΠΎΠΊΠ½ΠΎ Animator. БСйчас Ρ‚Π°ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ: Any State, Idle ΠΈ Run. Нам прСдстоит Π·Π°Π΄Π°Ρ‚ΡŒ условия ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ· Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Idle Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Run, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ· состояния покоя Π² состояниС Π±Π΅Π³Π°. Π’ Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Parameters. НаТимаСм Π½Π° плюсик, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Float ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ Speed. Π’Π΅ΠΌ самым ΠΌΡ‹ создали ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСмСщСния пСрсонаТа. ИмСнно Π² зависимости ΠΎΡ‚ значСния этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ покоя Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π³Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Idle, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Make Transition ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Run. ΠœΠ΅ΠΆΠ΄Ρƒ анимациями появится линия со стрСлкой. ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡŒΡ‚Π΅ ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Ссли ΠΏΠ»ΠΎΡ…ΠΎ Π²ΠΈΠ΄Π½ΠΎ. КликнСм ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ со стрСлкой. Π’ ΠΎΠΊΠ½Π΅ Inspector отобразятся свойства ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ анимациями. ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ· ΠΎΠΊΠ½Π°, Π² Ρ€Π°Π·Π΄Π΅Π» Conditions. КликнСм Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Exit Time ΠΈ помСняСм Π΅Π³ΠΎ Π½Π° Speed. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Greater оставим Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Π²Π²Π΅Π΄Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.01. ΠœΡ‹ создали условиС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ· Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ покоя Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π³Π° β€” ΠΎΠ½ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° скорости становится Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ большС нуля.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ β€” ΠΈΠ· Run Π² Idle. Π”Π΅Π»Π°Π΅ΠΌ всС с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚: Make Transition ΠΎΡ‚ Run ΠΊ Idle, выдСляСм ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Π² Conditions устанавливаСм Speed β€” Less β€” 0.01.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ условия ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Но ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали Π½ΡƒΠΆΠ½ΠΎ Β«ΠΎΠΆΠΈΠ²ΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ скрипта. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΠΎΠΊΠ½ΠΎ Project ΠΈ создадим Π² ΠΏΠ°ΠΏΠΊΠ΅ Assets ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ Scripts. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΉ C# Script, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ CharacterControllerScript ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π― ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ листинг скрипта с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ коммСнтариями, Π° Π½ΠΈΠΆΠ΅ Π΅Ρ‰Π΅ поясню, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ происходит.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π°Π²Π΅Π»ΠΈ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: для задания максимальной скорости пСрСмСщСния, для опрСдСлСния направлСния (Π²ΠΏΡ€Π°Π²ΠΎ/Π²Π»Π΅Π²ΠΎ) ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Animator. ΠŸΠΎΡ‡Ρ‚ΠΈ всС дСйствия происходят Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ FixedUpdate. Π’ Π½Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ оси Π₯, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСняСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ клавиш Π²Π»Π΅Π²ΠΎ-Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ A-D (Ссли Π½Π΅ мСняли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°!). Π—Π°Ρ‚Π΅ΠΌ устанавливаСм это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Speed ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Animator. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ этого значСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Mathf.Abs, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ создании условий ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ анимациями покоя ΠΈ Π±Π΅Π³Π° ΠΌΡ‹ сравниваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом 0.01. Нам здСсь Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π² ΠΊΠ°ΠΊΡƒΡŽ сторону Π±Π΅ΠΆΠΈΡ‚ пСрсонаТ. Π’Π°ΠΆΠ½ΠΎ лишь Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° значСния. Π”Π°Π»Π΅Π΅ Π·Π°Π΄Π°Π΅ΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСмСщСния ΠΏΠΎ оси Π₯ Π² соотвСтствии со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ максимальной скорости. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, провСряСм, Π² ΠΊΠ°ΠΊΡƒΡŽ сторону Π±Π΅ΠΆΠΈΡ‚ пСрсонаТ, ΠΈ Π² ΠΊΠ°ΠΊΡƒΡŽ сторону ΠΎΠ½ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚. Если ΠΎΠ½ Π±Π΅ΠΆΠΈΡ‚ Π²ΠΏΡ€Π°Π²ΠΎ, Π° ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ Π²Π»Π΅Π²ΠΎ β€” Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π²ΠΏΡ€Π°Π²ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ инвСртирования Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠΎ оси Π₯. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΈΠΌ Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΌ способом ΠΌΡ‹ избавились ΠΎΡ‚ нСобходимости Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ вмСсто ΠΎΠ΄Π½ΠΎΠΉ: для Π±Π΅Π³Π° Π²ΠΏΡ€Π°Π²ΠΎ ΠΈ для Π±Π΅Π³Π° Π²Π»Π΅Π²ΠΎ.

БохраняСм скрипт. Π’ Unity пСрСтаскиваСм Π΅Π³ΠΎ Π½Π° нашСго Character Π² ΠΎΠΊΠ½Π΅ Hierarchy. ЗапускаСм ΠΈΠ³Ρ€Ρƒ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π²Π»Π΅Π²ΠΎ-Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ A-D.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

ΠšΠ°ΠΏΠΈΡ‚Π°Π½ ΠšΠΎΠ³ΠΎΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΌΠ΅Π΅Ρ‚ Π±Π΅Π³Π°Ρ‚ΡŒ! Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ быстроватой. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ значСния Sample Π² ΠΎΠΊΠ½Π΅ Animation для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Run (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 12 Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ). Если ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΈΠ³Ρ€ΠΎΠΉ Ρƒ вас Π²ΠΈΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ Animator, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя покоя Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ анимация Idle (Π±Π΅Π³Π°Π΅Ρ‚ синий прогрСссбар), Π° Π²ΠΎ врСмя Π±Π΅Π³Π° происходит ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Run, ΠΈ, соотвСтствСнно, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ½Π°.

На этом ΠΏΠΎΠΊΠ° всС. Нам ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с прыТками… ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ этом Π΅Ρ‰Π΅ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ!
Бсылка Π½Π° спрайты.

Update: Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π΅ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ рСализация пСрСдвиТСния пСрсонаТа

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ сквозь Π΄Ρ€ΡƒΠ³ΠΎΠΉ хотя Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π°Ρ…?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ пСрсонаТ Π²ΠΎ врСмя двиТСния ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ сквозь Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Π·Π°Π΄?

Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ пСрсонаТа Π² Unity3d ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· transform.position ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ пСрсонаТ двиТСтся с Ρ€Π°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ссли просСдаСт FPS?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ пСрсонаТа Ρ‡Π΅Ρ€Π΅Π· смСну transform.position Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ВсС эти вопросы, фактичСски, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π΅Π΄ΠΈΠ½Ρ‹ΠΌ вопросом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слишком ΡƒΠΆ часто встрСчаСтся Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π—Π°ΠΎΠ΄Π½ΠΎ создал тэг unity3d-faq

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

1 ΠΎΡ‚Π²Π΅Ρ‚ 1

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ

Π₯ΠΎΡ‚ΡŒ я здСсь ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽ Π² Ρ‚.Ρ‡. нСфизичСскоС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π€Π˜Π—Π˜Π§Π•Π‘ΠšΠžΠ• Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. И ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° нСфизичСскоС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуациях.

Π― Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь 2 Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°: «Ρ‚СлСпортация» ΠΈ «ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅». Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ:

Π•ΡΡ‚ΡŒ люди Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½Π΅Π½ΠΈΠ΅ отличаСтся.

Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС Ρ‡Ρ‚ΠΎ написано Π½ΠΈΠΆΠ΅ упираСтся Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ значСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², Π° Π½Π΅ эти.

Π”Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Ρ‹ Π² ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠ°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ физичСский Π΄Π²ΠΈΠΆΠΎΠΊ (Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ обусловлСнноС физичСской модСлью ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°)

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Ρ‡Π΅Ρ€Π΅Π· CharacterController (здСсь ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ рассматриваСтся Ρ‚.ΠΊ. Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ Π² Π΅Π³ΠΎ сторону Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ смотрят, ΠΌΠΎΠΆΠ΅Ρ‚, ΠΏΠΎΠ·ΠΆΠ΅ Ρ€Π°ΡΠΏΠΈΡˆΡƒ)

Новички ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ критичСски Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. ΠŸΠΎΡ‚ΠΎΠΌ Π½Π° SO ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΡƒΡ‡ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ² вопросов Π²Ρ€ΠΎΠ΄Π΅ «ΠΏΠΎΡ‡Π΅ΠΌΡƒ пСрсонаТа Π΄Π΅Ρ€Π³Π°Π΅Ρ‚ Π²ΠΎΠ·Π»Π΅ стСны?» ΠΈΠ»ΠΈ «ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ сквозь стСну?» ΠΈΠ»ΠΈ «ΠΏΠΎΡ‡Π΅ΠΌΡƒ пуля Π½Π΅ всСгда наносит ΡƒΡ€ΠΎΠ½?» ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅.

НуТно Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всСго ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π”Π²ΠΈΠ³Π°Ρ‚ΡŒ/ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· присвоСниС transform.position / transform.rotation нСльзя. Π­Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ любом случаС это Π²Π°ΠΌ Π²Ρ‹Π»Π΅Π·Π΅Ρ‚ Π±ΠΎΠΊΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ двиТСния:

( Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π°-ΡˆΠ°Ρ€Π° )

Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ пСстрящих Π΄ΠΈΡ‡ΡŒΡŽ Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ², Π² Ρ‚.Ρ‡. сСрвисС вопросов/ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚ ΡŽΠ½ΠΈΡ‚ΠΈ. Π’Π°ΠΌ Π² Ρ‚Π°ΠΊΠΈΡ… Ρ‚Π΅ΠΌΠ°Ρ… слишком часто ΠΏΠΈΡˆΡƒΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Ρ‚Π΅ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понятия Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

БвязанныС с Ρ‚Π΅ΠΌΠΎΠΉ понятия:

Если ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ физичСскими свойствами (Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ RigitBody) эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для НЕфизичСского пСрСдвиТСния.

НапримСр ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

Или крутящийся ΠΊΡƒΠ± Π½Π° нСбосводС.

ΠœΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π΅Ρ€Π³Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΈ просСдании ΠΊΠ°Π΄Ρ€ΠΎΠ² Ссли сдСлаСм ΠΠ•Π€Π˜Π—Π˜Π§Π•Π‘ΠšΠžΠ• Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

ΠΌΡ‹ присваиваСм Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ:

ΠŸΡ€ΠΎ физичСскиС свойства двиТСния.

ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ²ΠΎ Π·Π°Π΄Π°Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ скачка. Волько 1 долю сСкунды. Но ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ измСнятся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ автоматичСски Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡΡΡŒ ΠΏΠΎΠ΄ силой тяТСния. Пока Π½Π΅ станСт Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ (вСрхняя Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΡ€Ρ‹ΠΆΠΊΠ°), Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π² минус ΠΏΠΎ Y (ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅), Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚ Π½Π° зСмлю ΠΈ Π½Π΅ отскочит ΠΎΡ‚ Π½Π΅Π΅ (снова плюс ΠΏΠΎ Y ) ΠΈ Ρ‚Π°ΠΊ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ остановки физичСской скорости ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° Π½Π° Π·Π΅ΠΌΠ»Π΅.

Если дСвайс с ΠΈΠ³Ρ€ΠΎΠΉ сильно Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Update() / FixedUpdate() Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ΅ΡΡ‚ΡŒ Π² скорости. И Ссли Π² Ρ„ΠΈΠ·ΠΈΠΊΠ΅ это ΡƒΡ‡Ρ‚Π΅Π½ΠΎ ΠΈ Π±Π΅Π· нас, Ρ‚ΠΎ сСйчас ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ НЕ физичСскоС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ-этому это Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½ΠΎΠ³ΠΎ мноТитСля.

Но ΠΈ Π±Π΅Π· использования Π΄Π°Π½ΠΎΠ³ΠΎ мноТитСля Ρƒ нас Π½Π΅ появится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠ²Π°Π»Π°ΠΌΠΈ сквозь стСны. Π­Ρ‚ΠΎ просто фикс скорости.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простой Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΠ•Π€Π˜Π—Π˜Π§Π•Π‘ΠšΠžΠ™ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° двиТСния Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрсонаТа.

Если Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π΄Π²ΠΈΠ³Π°Π»ΠΈ ΡˆΠ°Ρ€, Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ допустимо Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠ·.модСль. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ использовали AddForce() для этих Ρ†Π΅Π»Π΅ΠΉ.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ этот ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π΄Π°Π½ΠΎΠ³ΠΎ пСрсонаТа. ΠœΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ физичСский Ρ‚ΠΎΠ»Ρ‡Π΅ΠΊ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° Π½Π° Π½Π΅-физичСскоС, Π½ΠΎ ΠŸΠ›ΠΠ’ΠΠžΠ• ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° Π² пространствС:

Π‘ этим ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π‘ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρƒ нас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ€ΠΎΠ΄Π΅ скачков скорости Π½Π° просСдании ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ количСства FPS, ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ²Π°Π½ΠΈΠΉ, дСрганости, прохоТдСния сквозь стСны ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… нСоТиданностСй.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π³Π° Π½Π° нашСго пСрсонаТа (Π½Ρƒ Ссли Π±Ρ‹ это Π±Ρ‹Π» Π½Π΅ ΠΊΡƒΠ±).

Но ΠΊΠ°ΠΊ ΠΆΠ΅ рСализация Π½Π° Ρ„ΠΈΠ·ΠΈΠΊΠ΅?

Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π° Ρ„ΠΈΠ·ΠΈΠΊΠ΅.

Наша ΠΏΡ€ΠΎΡˆΠ»Π°Ρ вСрсия скрипта ΠΈΠΌΠ΅Π»Π° нСсколько нСдостатков. А ΠΈΠΌΠ΅Π½Π½ΠΎ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ помСстим Π½Π° наш ΠΊΡƒΠ± CapsuleCollider (минимальноС Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° силы трСния) ΠΈ Π·Π°Π±Π»ΠΎΡ‡ΠΈΠΌ Π² rigitBody rotateX ΠΈ rotateZ (Ρ‡Ρ‚ΠΎ Π± наш пСрсонаТ Π½Π΅ ΠΏΠ°Π΄Π°Π» Π½Π° Π±ΠΎΠΊ).

А ΠΏΠΎΡ‚ΠΎΠΌ Π½Π°Ρ†Π΅ΠΏΠΈΠΌ Π½Π° Π½Π΅Π³ΠΎ Π²ΠΎΡ‚ этот скрипт:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ эту ΠΏΠ»Π°Π²Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π±Π΅ΠΆΠΈΡ‚, останавливаСтся, Π±Π΅ΠΆΠΈΡ‚ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону? ΠšΡ€Π°ΡΠΎΡ‚Π°!

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π³ΠΈΡ„ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ. Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ совсСм Π½Π΅ Ρ‚Π°ΠΊΠΎΠ΅ πŸ™‚ Π’Π°ΠΌ ΠΊΠ°ΠΊ Π±ΡƒΠ΄-Ρ‚ΠΎ Ρ€ΡƒΠΊΠΎΠΉ Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΏΠΎ доскС.

Ну ΠΈ описанныС Π²Ρ‹ΡˆΠ΅ Π±Π°Π³ΠΈ повСдСния Π±Ρ‹Π»ΠΈ ΠΏΠΎΡ„ΠΈΠΊΡˆΠ΅Π½Ρ‹ с Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ физичСский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π°ΡˆΠ΅ΠΌΡƒ пСрсонаТу ΠΈ ΠΎΡ‚ΠΊΠΎΡ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’ΠΎΠΎΠ±Ρ‰Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎ бСсконСчности. Но, Π΄ΡƒΠΌΠ°ΡŽ, основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π‘ΠŸΠžΠ‘ΠžΠ‘ΠžΠ’ ΠŸΠ•Π Π•Π”Π’Π˜Π–Π•ΠΠ˜Π― с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ, я Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ» πŸ™‚

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Ρ„ΠΈΠ·ΠΈΠΊΠΈ.

ΠŸΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ физичСскоС ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

РСализация нСстандартной Ρ„ΠΈΠ·ΠΈΠΊΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ.

Одним ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΠ΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² нСстандартной Ρ„ΠΈΠ·ΠΈΠΊΠΈ двиТСния являСтся ΠΈΠ³Ρ€Π° Ori and the Blind Forest

Π’Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅/Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€Ρ‹ΠΆΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° основС стандартной Ρ„ΠΈΠ·ΠΈΠΊΠΈ. ВСроятнСС всСго, это дСлалось Ρ‡Π΅Ρ€Π΅Π· нСфизичСскоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ + костыли для получСния Π½ΡƒΠΆΠ½Ρ‹Ρ… эфСктов.

Π‘Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ двиТСния. Они Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π² любом Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (Ссли станСт нСдоступным ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Ori and the blind forest Enemy Concepts ) :

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‚ΠΎ здСсь прорисовано Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΈ Π΅Π³ΠΎ вытягивания/сТатия. ИзмСнСния Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΎ врСмя любого взаимодСйствия с внСшним ΠΌΠΈΡ€ΠΎΠΌ. Π’ Ρ‚.Ρ‡. выстрСлы Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ. А Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ радиусы опознавания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ гСроя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π°Π³ΠΎΠΌ.

ΠšΠΎΡΡ‚Ρ‹Π»ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пСрсонаТа/Π²Ρ€Π°Π³Π° свои собствСнныС. Π­Ρ‚ΠΎ дСлаСтся Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±Π»Π°Π΄Π°Π» своСй ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΠ·ΠΈΠΊΠΎΠΉ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΠΈΠ·ΠΈΠΊΠ΅ навряд Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ» Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ всС Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ»Π΅Ρ‚Π°Π΅Ρ‚ сквозь стСну

ДАЖЕ Ссли Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ физичСскоС ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ вашСго пСрсонаТа, всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ случится Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ просчСт CollisionDetect ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ошибками. Π­Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½ΠΎΠ³Π΄Π°.

Для Ρ‚Π°ΠΊΠΈΡ… случаСв Π΅ΡΡ‚ΡŒ настройки ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ CollisionDetect Π² настройках самого RigitBody.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π”Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚.ΠΊ. это Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ сказываСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ считайтС это, скорСС, ΡΠΏΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΡ€ΡƒΠ³ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΏΠ°Π½Π°Ρ†Π΅Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π½Π° Unity3D

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

Π―, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· вас, большой ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ³Ρ€. Π’ Π½ΠΈΡ… мСня ΠΏΡ€Π΅Π»ΡŒΡ‰Π°Π΅Ρ‚ Π² основном Π΄ΡƒΡ… сорСвнования ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, накапливая достиТСния. Π”Π° ΠΈ сама идСя Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² свСт всС большСго количСства ΠΈΠ³Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ.
Π‘ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ я ΠΈ сам взялся Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ собствСнного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€Π΅ статСй Π½Π° эту Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π½Π΅ нашСл – Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ написания ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Unity3D. Π’Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Network ΠΈ NetworkView, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ RPC ΠΈ встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…-ΠΈΠ²Π΅Π½Ρ‚Π°Ρ…. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ³Ρ€Ρ‹ ΠΈ, разумССтся, сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Unity. Π˜Ρ‚Π°ΠΊβ€¦

Класс Network

Π”Π°Π½Π½Ρ‹ΠΉ класс Π½ΡƒΠΆΠ΅Π½ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ соСдинСния Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр». ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: созданиС сСрвСра, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСрвСру, созданиС сСтСвого экзСмпляра ΠΏΡ€Π΅Ρ„Π°Π±Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Network.Connect (string host, int remotePort, string password = «») – выполняСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСрвСру host с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ remotePort ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ password. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пСрСчислСниС NetworkConnectionError.

Network.InitializeSecurity() – вызываСтся ΠΏΠ΅Ρ€Π΅Π΄ Network.InitializeServer() для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ читСрства. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. НС Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅!

Network.Instantiate(Object prefab, Vector3 position, Quaternion rotation, int group) – создаСт экзСмпляр ΠΏΡ€Π΅Ρ„Π°Π±Π° prefab Π² сСти Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ position с ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ rotation ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ group. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ вСсь созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ послС создания ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ – Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства:

bool Network.isClient ΠΈ bool Network.isServer – ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, являСтся ваша ΠΈΠ³Ρ€Π° сСрвСром Π»ΠΈΠ±ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Оба свойства ΡΠ²Π»ΡΡŽΡ‚ΡΡ false, Ссли Π½Π΅ Π±Ρ‹Π» создан сСрвСр ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру.

string Network.incomingPassword – свойство Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для входящих ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

NetworkPlayer Network.player – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр локального ΠΈΠ³Ρ€ΠΎΠΊΠ° NetworkPlayer.

NetworkPeerType Network.peerType – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: Disconnected (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½), Server (Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ сСрвСр), Client (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ сСрвСру), Connecting (ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°, Π² процСссС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ).

NetworkPlayer[] Network.connections – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всСх ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². На ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° сСрвСра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ²Π΅Π½Ρ‚Ρ‹ (для унаслСдованного ΠΎΡ‚ MonoBehaviour):

OnConnectedToServer() – вызываСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСрвСру.

OnDisconnectedFromServer(NetworkDisconnection info) – вызываСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΡ‚ сСрвСра ΠΈ Π½Π° сСрвСрС ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Network.Disconnect(). Π’ info содСрТится ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: LostConnection (потСря связи) ΠΈ Disconnected (ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ).

OnFailedToConnect(NetworkConnectionError error) β€” вызываСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈ ошибкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. error содСрТит ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠ° NetworkConnectionError.

OnNetworkInstantiate(NetworkMessageInfo info) β€” вызываСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ сСрвСрС, Ссли Π±Ρ‹Π» создан Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Network.Instantiate(). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ info Ρ‚ΠΈΠΏΠ° NetworkMessageInfo.

OnPlayerConnected(NetworkPlayer player) β€” вызываСтся Π½Π° сСрвСрС ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ содСрТит player Ρ‚ΠΈΠΏΠ° NetworkPlayer.

OnPlayerDisconnected(NetworkPlayer player) β€” вызываСтся Π½Π° сСрвСрС ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ содСрТит player Ρ‚ΠΈΠΏΠ° NetworkPlayer.

OnServerInitialized() β€” вызываСтся Π½Π° сСрвСрС, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сСрвСр Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создан.

OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) β€” Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΈΠ²Π΅Π½Ρ‚ для синхронизации ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с ΡΠ΅Ρ‚ΡŒΡŽ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ – Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Класс NetwokView
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

networkView.RPC(string name, RPCMode mode, params object[] args) β€” Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ name, mode опрСдСляСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, args – Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅.

networkView.RPC(string name, NetworkPlayer target, params object[] args) – Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠ΄Π½Π°ΠΊΠΎ выполняСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ NetworkPlayer.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства:

bool networkView.isMine – свойство, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, являСтся Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Π’Π΅ΡΡŒΠΌΠ° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Component networkView.observed – ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Если это скрипт, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info), упомянутый Π²Ρ‹ΡˆΠ΅.

NetworkPlayer networkView.owner – свойство, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

NetworkStateSynchronization networkView.stateSynchronization β€” Ρ‚ΠΈΠΏ синхронизации: Off, ReliableDeltaCompressed, Unreliable.

NetworkViewID networkView.viewID β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² сСти для NetworkView.

Атрибут RPC
ΠœΠ΅Ρ‚ΠΎΠ΄ OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для синхронизации ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² сСти. Он вызываСтся всякий Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСти.
Π’ΠΎΡ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹/ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Serialize: bool, char, short, int, float, Quaternion, Vector3, NetworkPlayer, NetworkViewID.
Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΈΠ΄Π΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства isReading ΠΈΠ»ΠΈ isWriting.

ΠŸΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования:

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ наши ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Β«Π΄Π΅Ρ€Π³Π°Ρ‚ΡŒΡΡΒ». Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ интСрполяциСй. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ – Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡŽΠ½ΠΈΡ‚ΠΈ

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ синхронизации ΠΏΠΎ сСти смотритС Π½Π° сайтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: Valve Developer Community β€” Source Multiplayer Networking

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹

Π˜Ρ‚Π°ΠΊ, имСя прСдставлСния ΠΎΠ± основах, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π·Π° написаниС нСбольшой ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ€Π°Π·Π½Ρ‹Π΅ способы примСнСния NetworkView. Π’Π°ΠΌ остаСтся лишь Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для сСбя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ скрипт ServerSide.cs ΠΈ пишСм Ρ‚ΡƒΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создаСм скрипт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ClientSide.cs:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, клиСнтская ΠΈ сСрвСрная Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ΡΡ‚ΡŒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для Π½Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ MainMenu.cs:

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Ρ‚ΡŒΡŽ создано. Π”Π°Π»Π΅Π΅ пишСм ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ PlayerControls.cs. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ примСнСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° NetworkView:

Π—Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ синхронизация ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Ρ€Π΅ΡˆΠΈΠ» ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ…. Как Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, здСсь NetworkView создаСтся Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ скрипта. На ΠΌΠΎΠΉ взгляд, это Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Β«Π·Π°Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ» (разумССтся, Ссли Π½Π΅ написано RequireComponent( typeof( Rigidbody ))), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π² инспСкторС количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ мСня Π±Ρ‹Π» случай: ΠΊΠΎΠ³Π΄Π°, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, всС Π±Ρ‹Π»ΠΎ сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΉ скрипт Π½Π΅ Π΄Π΅Π»Π°Π» ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ, ΠΈ всС ΠΌΠΎΠΈ дСйствия Π² синхронизации ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π». Π’Π°ΠΊ Π²ΠΎΡ‚ ошибкой оказалось Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Observed Π±Ρ‹Π» Π½Π΅ ΠΌΠΎΠΈΠΌ скриптом, Π° трансформ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ скрипты для написания ΠΌΠΈΠ½ΠΈ-ΠΈΠ³Ρ€Ρ‹.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Π΅ΠΌΡƒ скрипты MultiplayerMenu, ServerSide, ClientSide.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ опускаСм.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€Π΅Ρ„Π°Π± ΠΈΠ³Ρ€ΠΎΠΊΠ° (Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Π±ΡƒΠ΄ΡƒΡ‚ ΡˆΠ°Ρ€Ρ‹). Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «сфСра», Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Π΅ΠΌΡƒ скрипт PlayerControls ΠΈ добавляСм Π² ΠΏΡ€Π΅Ρ„Π°Π±. ΠŸΡ€Π΅Ρ„Π°Π± пСрСтягиваСм Π½Π° ClientSide Π² ΠΏΠΎΠ»Π΅ Player Prefab.
На этом всС, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Π½Π΅ забывая Π² настройках ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Run in background) ΠΈ запускаСм нСсколько Ρ€Π°Π·. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΎΠΊΠΎΠ½ ΠΆΠΌΠ΅ΠΌ сСрвСр, Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… – ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΈ смотрим Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Бсылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
*Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ логичСскиС ошибки, Π½ΠΎ Π½Π° ΡΡƒΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚.

ВсСх Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
Π–Π΅Π»Π°ΡŽ успСхов Π² создании ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ³Ρ€!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *