EchoPulse & Asteroid
ΠΡΠΈΠ²Π΅Ρ, Π° ΠΊΠ°ΠΊ Π½Π°ΡΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ VR-ΠΌΠΈΡ Π±Π΅Π· Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΠΈΡΡ Π²ΠΎΠΊΡΡΠ³ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°Π½Π΅ΡΡ? Π― ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΠ·ΠΈΠΊΡ, ΡΡΠΎΠ±Ρ Π²ΡΡ Π±ΡΠ»ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ, Π° ΡΡ ΠΌΠΎΠ³Π»Π° Π±Ρ Π·Π°Π½ΡΡΡΡΡ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΠΉΠ·Π°ΠΆΠ°ΠΌΠΈ. Π§ΡΠΎ Π΄ΡΠΌΠ°Π΅ΡΡ?
ΠΡΠΎ Π·Π²ΡΡΠΈΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ! Π― ΡΠΆΠ΅ Π²ΠΈΠΆΡ ΠΏΠ°ΡΡΡΠΈΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΡΠ°Π»Ρ ΡΠ΅ΡΠ²ΠΎΡΠΎΡΠΈΠ½. ΠΠ°Π²Π°ΠΉ ΠΏΠΎΡΡΡΠΎΠΈΠΌ ΡΠ΅Π»ΡΠΉ Π½Π΅Π±Π΅ΡΠ½ΡΠΉ Π±ΠΎΠΊΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠΎ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅!
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΠΎ Π½ΡΠΆΠ½Ρ ΡΠΎΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: Π²Π΅ΠΊΡΠΎΡ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ Π΄Π»Ρ Π³ΠΎΡΠΎΠ΄ΠΎΠ², Π»ΠΎΠ³ΠΈΠΊΠ° Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π»ΠΎΠ². ΠΡΠ»ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΠ½Π°, Π΄ΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ°ΡΡΡΡ ΠΏΠ»Π°Π²Π½ΠΎ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΠ±ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ. Π‘ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
ΠΡ Π»Π°Π΄Π½ΠΎ, Π½Π°ΡΠ½ΡΠΌ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ Π΄Π»Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΡΠΈΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ΅ Π²ΡΠΏΡΠΊΠ»ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Π·ΠΎΠ½Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π½ΠΈΡ
Π½Π°ΡΡΡΠΏΠΈΡ β Π±ΡΡΡΡΠΎ, ΡΠΈΡΡΠΎ ΠΈ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ Π½Π΅Π²Π΅ΡΠΎΠΌΠΎΡΡΠΈ. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ.
Π₯ΠΎΡΠΎΡΠΎ, Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π±Π°Π·ΠΎΠ²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: g ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ Π΄ΡΠ΅ΠΉΡΠ° 0.01 ΠΌ/ΡΒ² Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅Π½ΡΡΠ° ΠΊΡΠΏΠΎΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΠΏΡΠΊΠ»ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ Π³ΡΠ°Π½ΠΈΡ Π³ΠΎΡΠΎΠ΄Π°, ΠΈ Π·ΠΎΠ½Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Ρ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠΌ 0.2 ΠΊΠ³Β·ΠΌ/Ρ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅. ΠΠ°Π²Π°ΠΉ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΈ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. ΠΠΎΡΠΎΠ²Π°?
ΠΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ! ΠΠΎΡ Π½Π°Π±ΡΠΎΡΠΎΠΊ:
Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ = 0
Π΄ΡΠ΅ΠΉΡ = Vector3(0.01, 0, 0.01) // Π»ΡΠ³ΠΊΠΎΠ΅ ΠΏΡΠΈΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡΠ΅Π½ΡΡΡ
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ΄Π° Π² Π³ΠΎΡΠΎΠ΄Π°Ρ
:
Π³ΠΎΡΠΎΠ΄.collider = ConvexHull(Π³ΠΎΡΠΎΠ΄.vertices)
ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΡΠ°Π»):
ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΡ ΠΈΠΌΠΏΡΠ»ΡΡ(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Vector3(0, 0, 0.2))
ΠΠ°Π²ΠΎΠ΄ΠΈΠΌ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π΅ΡΡΡ. ΠΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ! ΠΠΎΡ Π½Π°Π±ΡΠΎΡΠΎΠΊ: Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ = 0; Π΄ΡΠ΅ΠΉΡ = Vector3(0.01, 0, 0.01) β Π»ΡΠ³ΠΊΠΎΠ΅ ΠΏΡΠΈΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡΠ΅Π½ΡΡΡ; Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ΄Π° Π² Π³ΠΎΡΠΎΠ΄Π°Ρ
: Π³ΠΎΡΠΎΠ΄.collider = ConvexHull(Π³ΠΎΡΠΎΠ΄.vertices); ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΡΠ°Π»): ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΡ ΠΈΠΌΠΏΡΠ»ΡΡ(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Vector3(0, 0, 0.2)) ΠΠ°Π²ΠΎΠ΄ΠΈΠΌ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π΅ΡΡΡ.