ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ (Colliders). Unity3d ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹

Any number of these can be added to a single object to create compound colliders .

With careful positioning and sizing, compound colliders can often approximate the shape of an object quite well while keeping a low processor overhead. Further flexibility can be gained by having additional colliders on child objects (eg, boxes can be rotated relative to the local axes of the parent object). When creating a compound collider like this, there should only be one Rigidbody component, placed on the root object in the hierarchy.

Note, that primitive colliders will not work correctly with shear transforms - that means that if you use a combination of rotations and non-uniform scales in the tranform hierarchy so that the resulting shape would no longer match a primitive shape, the primitive collider will not be able to represent it correctly.

There are some cases, however, where even compound colliders are not accurate enough. In 3D, you can use Mesh Colliders to match the shape of the object’s mesh exactly. In 2D, the Polygon Collider 2D will generally not match the shape of the sprite graphic perfectly but you can refine the shape to any level of detail you like. These colliders are much more processor-intensive than primitive types, however, so use the m sparingly to maintain good performance. Also, a mesh collider will normally be unable to collide with another mesh collider (ie, nothing will happen when they make contact). You can get around this in some cases by marking the mesh collider as Convex in the inspector. This will generate the collider shape as a β€œconvex hull” which is like the original mesh but with any undercuts filled in. The benefit of this is that a convex mesh collider can collide with other mesh colliders so you may be able to use this feature when you have a moving character with a suitable shape. However, a good general rule is to use mesh colliders for scene geometry and approximate the shape of moving objects using compound primitive colliders.

Colliders can be added to an object without a Rigidbody component to create floors, walls and other motionless elements of a scene. These are referred to as static colliders. In general, you should not reposition static colliders by changing the Transform position since this will impact heavily on the performance of the physics engine. Colliders on an object that does have a Rigidbody are known as dynamic colliders. Static colliders can interact with dynamic colliders but since they don’t have a Rigidbody, they will not move in response to collisions.

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ справки для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡ… свойствах ΠΈ способах использования.

ЀизичСскиС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ (Physics Materials)

When colliders interact, their surfaces need to simulate the properties of the material they are supposed to represent. For example, a sheet of ice will be slippery while a rubber ball will offer a lot of friction and be very bouncy. Although the shape of colliders is not deformed during collisions, their friction and bounce can be configured using Physics Materials . Getting the parameters just right can involve a bit of trial and error but an ice material, for example will have zero (or very low) friction and a rubber material with have high friction and near-perfect bounciness. See the reference pages for Physic Material and Physics Material 2D for further details on the available parameters. Note that for historical reasons, the 3D asset is actually called Physic Material (without the S) but the 2D equivalent is called Physics Material 2D (with the S).

Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ (Triggers)

The scripting system can detect when collisions occur and initiate actions using the OnCollisionEnter function. However, you can also use the physics engine simply to detect when one collider enters the space of another without creating a collision. A collider configured as a Trigger (using the Is Trigger property) does not behave as a solid object and will simply allow other colliders to pass through. When a collider enters its space, a trigger will call the OnTriggerEnter function on the trigger object’s scripts.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ

Π’ случаС ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, физичСский Π΄Π²ΠΈΠΆΠΎΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с особыми ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² скриптах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ присоСдинСны ΠΊ Π²ΠΎΠ²Π»Π΅Ρ‡Ρ‘Π½Π½Ρ‹ΠΌ Π² коллизию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ любой ΠΊΠΎΠ΄ Π² эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° событиС столкновСния. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊ Π°Π²Π°Ρ€ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ врСзаСтся Π² прСпятствиС.

On the first physics update where the collision is detected, the OnCollisionEnter function is called. During updates where contact is maintained, OnCollisionStay is called and finally, OnCollisionExit indicates that contact has been broken. Trigger colliders call the analogous OnTriggerEnter , OnTriggerStay and OnTriggerExit functions. Note that for 2D physics, there are equivalent functions with 2D appended to the name, eg, OnCollisionEnter2D . Full details of these functions and code samples can be found on the Script Reference page for the MonoBehaviour class.

Π£ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π½Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π΅Ρ‚Π°Π»ΡŒ: ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ²Π»Π΅Ρ‡Ρ‘Π½Π½Ρ‹Ρ… Π² коллизию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π½Π΅ кинСматичСским Rigidbody (Ρ‚.Π΅. IsKinematic Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½). Если ΠΎΠ±Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ кинСматичСскими, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ€ΠΎΠ΄Π΅ OnCollisionEnter ΠΈ Ρ‚.Π΄. Π‘ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹ΠΌΠΈ столкновСниями это условиС Π½Π΅ примСняСтся, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈ кинСматичСскиС ΠΈ Π½Π΅ кинСматичСскиС Rigidbody Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ OnTriggerEnter ΠΏΡ€ΠΈ пСрСсСчСнии Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°.

ВзаимодСйствия ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ²

ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ настроСны ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Rigidbody . ВрСмя Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ конфигурациями ΡΠ²Π»ΡΡŽΡ‚ΡΡ (Ρ‚.Π΅. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Rigidbody отсутствуСт Π²ΠΎΠΎΠ±Ρ‰Π΅), , ΠΈ .

Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Static Collider)

Π­Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€, Π½ΠΎ Π½Π΅Ρ‚Ρƒ Rigidbody. Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, которая всСгда стоит Π½Π° мСстС ΠΈ совсСм Π½Π΅ двигаСтся. ВстрСчныС Rigidbody ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ€Π΅Π·Π°Ρ‚ΡŒΡΡ Π² статичный ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€, Π½ΠΎ Π΅Π³ΠΎ Π½Π΅ сдвинут.

Π’ физичСский Π΄Π²ΠΈΠΆΠΎΠΊ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ статичныС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΈ, Π½Π° основС этого прСдполоТСния, Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, статичныС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ нСльзя Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ врСмя ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ статичный ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€, Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ физичСским Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ пСрСрасчёт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ большим ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π₯ΡƒΠΆΠ΅ Ρ‚ΠΎΠ³ΠΎ, измСнСния ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π² Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ состоянии, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ физичСскиС расчёты. НапримСр, рСйкаст ΠΊ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠΌΡƒ статичному ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² случайном мСстС Π² пространствС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Rigidbody ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… врСТСтся статичный ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ β€œΡ€Π°Π·Π±ΡƒΠΆΠ΅Π½Ρ‹β€, ΠΈ статичный ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ трСния. По этим ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ с Rigidbody. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ влияли встрСчныС Rigidbody, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ скрипта, Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ кинСматичСский Rigidbody ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊ Π½Π΅ΠΌΡƒ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Rigidbody.

Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Rigidbody Collider)

Π­Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π΅ кинСматичСский Rigidbody. Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ физичСским Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈ силы, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· скрипта. Они ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ статичныС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹) ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ самой распространённой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° Π² ΠΈΠ³Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΠΈΠ·ΠΈΠΊΡƒ.

ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ (Kinematic Rigidbody Collider)

Π­Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΈ кинСматичСский Rigidbody (Ρ‚.Π΅. свойство IsKinematic ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Rigidbody Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ). ИзмСняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Transform, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с кинСматичСским Rigidbody, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ силы Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π½Π΅ кинСматичСскиС Rigidbody. ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Rigidbody Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ пСриодичСски Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ/Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ вСсти сСбя ΠΊΠ°ΠΊ статичныС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π°Ρ Π΄Π²Π΅Ρ€ΡŒ, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΡ‹ΠΌ физичСским прСпятствиСм, Π½ΠΎ ΠΏΠΎ надобности ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ статичного ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°, двиТущийся кинСматичСский Rigidbody Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ, Π² случаС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°, Π±ΡƒΠ΄Π΅Ρ‚ β€œΠ±ΡƒΠ΄ΠΈΡ‚ΡŒβ€ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Rigidbody.

Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹, кинСматичСскиС Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΈΠ½Π°Ρ‡Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ статичных ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ². НапримСр, Ссли ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ настроСн ΠΊΠ°ΠΊ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ Rigidbody, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π² вашСм скриптС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ события Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ΠΏΠ°Π΄Π°Π» ΠΏΠΎΠ΄ дСйствиСм силы Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ подвСргался влиянию Ρ„ΠΈΠ·ΠΈΠΊΠΈ, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свойство IsKinematic .

A Rigidbody component can be switched between normal and kinematic behavior at any time using the IsKinematic property.

A common example of this is the β€œragdoll” effect where a character normally moves under animation but is thrown physically by an explosion or a heavy collision. The character’s limbs can each be given their own Rigidbody component with IsKinematic enabled by default. The limbs will move normallly by animation until IsKinematic is switched off for all of them and they immediately behave as physics objects. At this point, a collision or explosion force will send the character flying with its limbs thrown in a convincing way.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° дСйствий ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ

Когда ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ 2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… событий Π² скриптС зависит ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Rigidbody ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΡ…ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘Ρ…Π΅ΠΌΡ‹ Π½ΠΈΠΆΠ΅ содСрТат Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ событий Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° присоСдинённых ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… комбинациях эффСкт производится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ - Π·Π°ΠΊΠΎΠ½Ρ‹ Ρ„ΠΈΠ·ΠΈΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ присоСдинённого Rigidbody.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ столкновСний, ΠΈ ΠΏΡ€ΠΈ ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ сообщСния
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Static Collider) Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Rigidbody Collider) ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Kinematic Rigidbody Collider)
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Static Collider) Π”Π°
Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Rigidbody Collider) Π”Π° Π”Π° Π”Π°
ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Kinematic Rigidbody Collider) Π”Π°
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Static Trigger Collider)
Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Rigidbody Trigger Collider)
ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Kinematic Rigidbody Trigger Collider)
ΠŸΡ€ΠΈ коллизиях ΠΎΡ‚ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ сообщСния Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Static Collider) Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Rigidbody Collider) ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Kinematic Rigidbody Collider) Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Static Trigger Collider) Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Rigidbody Trigger Collider) ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Kinematic Rigidbody Trigger Collider)
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Static Collider) Π”Π° Π”Π°
Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Rigidbody Collider) Π”Π° Π”Π° Π”Π°
ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Kinematic Rigidbody Collider) Π”Π° Π”Π° Π”Π°
Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Static Trigger Collider) Π”Π° Π”Π° Π”Π° Π”Π°
Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Rigidbody Trigger Collider) Π”Π° Π”Π° Π”Π° Π”Π° Π”Π° Π”Π°
ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Rigidbody ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (Kinematic Rigidbody Trigger Collider) Π”Π° Π”Π° Π”Π° Π”Π° Π”Π° Π”Π°

ΠšΠΎΡ€ΠΎΠ±Ρ‡ΠΈΠΊ с ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΎΠΉ

ΠŸΠ΅Ρ€Π²ΠΎΠ±Ρ‹Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΡƒΠ±ΠΈΠΊΠ°.

свойства

    ЯвляСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ

    Center - Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Box Collider Π² мСстном пространствС

    Π Π°Π·ΠΌΠ΅Ρ€ - Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° Box, ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΉ Π² локальном пространствС

ΠΏΡ€ΠΈΠΌΠ΅Ρ€

// Add a Box Collider to the current GameObject. BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider)); // Make the Box Collider into a Trigger Collider. myBC.isTrigger= true; // Set the center of the Box Collider to the center of the GameObject. myBC.center = Vector3.zero; // Make the Box Collider twice as large. myBC.size = 2;

Π‘Ρ„Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€

ΠŸΠ΅Ρ€Π²ΠΎΠ±Ρ‹Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΡˆΠ°Ρ€Π°.

свойства

    ЯвляСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ - Ссли Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ, Sphere Collider Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ·ΠΈΠΊΡƒ ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ

    Center - Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Sphere Collider Π² локальном пространствС

    Радиус - радиус ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°

ΠΏΡ€ΠΈΠΌΠ΅Ρ€

// Add a Sphere Collider to the current GameObject. SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider)); // Make the Sphere Collider into a Trigger Collider. mySC.isTrigger= true; // Set the center of the Sphere Collider to the center of the GameObject. mySC.center = Vector3.zero; // Make the Sphere Collider twice as large. mySC.radius = 2;

ΠšΠ°ΠΏΡΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€

Π”Π²Π΅ полусфСры, соСдинСнныС Ρ†ΠΈΠ»ΠΈΠ½Π΄Ρ€ΠΎΠΌ.

свойства

    ЯвляСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ - Ссли Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ, Capsule Collider Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ·ΠΈΠΊΡƒ ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ

    Π¦Π΅Π½Ρ‚Ρ€ - Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° Π² мСстном пространствС

    Радиус

    Высота - общая высота ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°

    НаправлСниС - ось ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² локальном пространствС

ΠΏΡ€ΠΈΠΌΠ΅Ρ€

// Add a Capsule Collider to the current GameObject. CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider)); // Make the Capsule Collider into a Trigger Collider. myCC.isTrigger= true; // Set the center of the Capsule Collider to the center of the GameObject. myCC.center = Vector3.zero; // Make the Sphere Collider twice as tall. myCC.height= 2; // Make the Sphere Collider twice as wide. myCC.radius= 2; // Set the axis of lengthwise orientation to the X axis. myCC.direction = 0; // Set the axis of lengthwise orientation to the Y axis. myCC.direction = 1; // Set the axis of lengthwise orientation to the Y axis. myCC.direction = 2;

ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ колСс

свойства

    Масса - масса колСсного ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°

    Радиус - радиус Π² локальном пространствС

    ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ дСмпфирования колСс - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСмпфирования для ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° колСс

    РасстояниС подвСски - максимальноС ΡƒΠ΄Π»ΠΈΠ½Π΅Π½ΠΈΠ΅ вдоль оси Y Π² локальном пространствС

    РасстояниС Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ прилоТСния - Ρ‚ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ силы,

    Π¦Π΅Π½Ρ‚Ρ€ - Π¦Π΅Π½Ρ‚Ρ€ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° колСс Π² мСстном пространствС

ПодвСска ВСсна

    ВСсна - ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ колСсо пытаСтся Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

    Damper - большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ большС, Π° подвСска двиТСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅

    ЦСлСвая позиция - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - 0,5, ΠΏΡ€ΠΈ 0 - ниТняя ниТняя Ρ‡Π°ΡΡ‚ΡŒ подвСски, ΠΏΡ€ΠΈ 1 - ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ растяТСнии

    ΠŸΡ€ΡΠΌΠΎΠ΅ / Π±ΠΎΠΊΠΎΠ²ΠΎΠ΅ Ρ‚Ρ€Π΅Π½ΠΈΠ΅ - ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ шина ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π²Π±ΠΎΠΊ

ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π΅Ρ‚Ρ‡Π°Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€

ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π½Π° основС Mesh Asset.

свойства

    ЯвляСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ - Ссли ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Box ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΠΈΠ·ΠΈΠΊΡƒ ΠΈ становится Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ

    Convex - Convex Mesh-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ 255 ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°ΠΌΠΈ - Ссли этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, этот ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ сСтки

ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Если Π²Ρ‹ примСняСтС нСсколько ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΊ GameObject, ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это слоТным ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ.

*Unity* - ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, прогрСссивный Π΄Π²ΠΈΠΆΠΎΠΊ с большим ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠΌ. Он ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ мноТСством ΡƒΠΆΠ΅ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π² Ρ‚ΠΎΠΌ числС ΠΈ физичСским Π΄Π²ΠΈΠΆΠΊΠΎΠΌ *NvidiaPhysX*), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π΅ придСтся. :)
Π’ этой нСбольшой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ физичСскиС возмоТности Π΄Π²ΠΈΠΆΠΊΠ°. Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Π΅ΠΌ:

Rigidbody
=
= Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? =
Π—Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ *Rigidbody* скрываСтся ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π’Π²Π΅Ρ€Π΄ΠΎΠ΅ Π’Π΅Π»ΠΎ (*АВВ*). Если ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Π³Ρ€ΡƒΠ±ΠΎ ΠΈ понятно, Ρ‚ΠΎ *АВВ* Π² Ρ„ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅ - это идСальноС Ρ‚Π²Π΅Ρ€Π΄ΠΎΠ΅ Ρ‚Π΅Π»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ воздСйствиСм силы Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ свои свойства, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ (ΠΏΠΎΠ΄ Π΅Π΅ воздСйствиСм) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² 3Ρ… измСрСниях (Π²Π½ΠΈΠ·, Π²Π²Π΅Ρ€Ρ…, Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Ρ‚.Π΄., Ρ‚.Π΅. Π² Π½Π°ΡˆΠΈΡ… X-Y-Z осях), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² 3Ρ… измСрСниях (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΏΠΎ осям X-Y-Z).

Π’ *Unity*, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠ°Ρ… (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽ ΠΈΡ… ΠΈΠΌΠ΅Π½Π½ΠΎ "ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ" Π΄Π²ΠΈΠΆΠΊΠ°ΠΌΠΈ Π³Ρ€ΡƒΠ±ΠΎ), *Rigidbody* ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, толкая, пиная ΠΈ Ρ‚.ΠΏ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ΄ нашим влияниСм Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ воздСйствиСм Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚Π°Ρ‚ΡŒΡΡ, ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ.

КакоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? =
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для создания автомобиля, ΠΊΡ€ΠΎΠΌΠ΅ *Rigidbody* Π½Π°ΠΌ понадобятся 4 Wheel Collider "Π° ΠΈ *ΠΊΠΎΠ΄* (*скрипт*) , ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ силовоС воздСйствия ΠΊ колСсам, Π² зависимости ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… клавиш.

  • *Mass* - Масса нашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΈΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… . РСкомСндуСтся Π½Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ значСния массы Π² 100 Ρ€Π°Π· большС ΠΈΠ»ΠΈ мСньшС масс Π΄Ρ€ΡƒΠ³ΠΈΡ… *АВВ*.
  • *Drag* - Насколько Ρ‚Π΅Π»ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ ΡΠΎΠΏΡ€ΠΎΡ‚ΠΈΠ²Π»Π΅Π½ΠΈΡŽ Π²ΠΎΠ·Π΄ΡƒΡ…Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ двиТСтся ΠΏΠΎΠ΄ воздСйствиСм сил. ΠŸΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ *0* сопротивлСния Π½Π΅Ρ‚, Π° бСсконСчноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ остановит наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • Angular Drag - Насколько Ρ‚Π΅Π»ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ ΡΠΎΠΏΡ€ΠΎΡ‚ΠΈΠ²Π»Π΅Π½ΠΈΡŽ Π²ΠΎΠ·Π΄ΡƒΡ…Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ вращаСтся ΠΏΠΎΠ΄ воздСйствиСм сил. ΠŸΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ *0* сопротивлСния Π½Π΅Ρ‚, Π° бСсконСчноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ нашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  • Use Gravity - ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ становится ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ влиянию Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ.
  • Is Kinematic - ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ становится Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ влиянию физичСского Π΄Π²ΠΈΠΆΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ *Transform*. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для создания двиТущихся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ.
  • *Interpolate* - ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС, Ссли двиТСния вашСго АВВ каТутся Π²Π°ΠΌ странными ΠΈΠ»ΠΈ Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠΈΠΌΠΈ ΠΈ Ρ‚.ΠΏ.:
  1. None: Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ Π½Π΅ примСняСтся
  2. Interpolate: По-ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с трансформациСй ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Π΄Ρ€Π° (*Ρ„Ρ€Π΅ΠΉΠΌΠ°*) , ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сглаТСн.
  3. Extrapolate: Врансформация Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Π΄Ρ€Π° сглаТиваСтся, ΠΏΠΎ-ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΡ†Π΅Π½ΠΎΡ‡Π½ΠΎΠΉ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠΉ) трансформациСй ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ.
  • Freeze Rotation - Π—Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ любоС Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ скриптовоС, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ столкновСниях. Однако, Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ //transform.Rotate()
  • Collision Detection - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро-двиТущиСся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ сквозь Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π΅ находя Collision "ΠΎΠ² (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ "сСтка" Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ).
  1. Discrete: Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ "Π·Π°ΠΌΠ΅Ρ‡Π°Π»" всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ.
  2. Continuous: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Discrete Π‘ollision с динамичСскими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ столкновСния (Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся *АВВ*), Π° Continuous Π‘ollision для статичСских MeshCollider "ΠΎΠ² (Π±Π΅Π· *АВВ*). Π Π΅ΠΆΠΈΠΌ Continuous Dynamic ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Continuous Π‘ollision для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ *АВВ*. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ *АВВ* Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ _Discrete_. (Π­Ρ‚ΠΎ сильно скаТСтся Π½Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ физичСского Π΄Π²ΠΈΠΆΠΎΠΊ, просто ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ _Discrete_, Ссли Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со столкновСниСм быстрых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²)
  3. Continuous Dynamic: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ _Continuous_ ΠΈΠ»ΠΈ Continuous Dynamic Collision . Continuous Π‘ollision Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для статичСских MeshCollider "ΠΎΠ² (Π±Π΅Π· *АВВ*). Для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ _Discrete_. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для быстро двиТущихся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ? =
= Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ знания.
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ *АВВ*, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΡƒΠΆΠ΅ созданный ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (*GameObject*), ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² Π½Π° Π½Π΅ΠΌ, ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ Π² мСню ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡƒΡ‚ΠΈ: Components - Physics - Rigidbody . ВсС, *АВВ* Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ! :)
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ, ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ силы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов, Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π΅Π» сСбя ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ *Collider* ΠΈΠ»ΠΈ *Joint*.

Код ΠΏΡ€Π°Π²ΠΈΡ‚ ΠΌΠΈΡ€ΠΎΠΌ.
Π’ скриптС ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нашим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ AddForce() ΠΈ AddTorque() .
Π’Π°ΠΊ ΠΊΠ°ΠΊ я Π² *Unity* ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ *JavaScript*, ΠΌΠΎΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ с Π½ΠΈΠΌ, ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ скриптинга (Π½Π° C# ΠΈΠ»ΠΈ *Boo*) Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΠΈΠΆΠ΅, Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информаия ΠΏΠΎ АВВ .

Rigidbody.AddForce

// Rigidbody.AddForce ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 2 Ρ‚ΠΈΠΏΠ° Ρ„ΠΎΡ€ΠΌΡƒΠ», ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с пСрСмСщСниями Π² пространствС. // 1 Ρ‚ΠΈΠΏ: function AddForce (force: Vector3, mode: ForceMode = ForceMode.Force) : void // Π‘ΠΈΠ»Π°, ΠΏΠΎΠ΄Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π²Π΅Ρ€Ρ…, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ глобальной систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. function FixedUpdate () { rigidbody.AddForce (Vector3.up * 10); } // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Vector3 - встроСнная функция Unity, которая, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° стандартной систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. // 2 Ρ‚ΠΈΠΏ: function AddForce (x: float, y: float, z: float, mode: ForceMode = ForceMode.Force) : void // Π’ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ Ρ‚ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ X-Y-Z систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. function FixedUpdate () { rigidbody.AddForce (0, 10, 0); }

Rigidbody.AddTorque

// Ѐункция раскручиваСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси. // 1 Ρ‚ΠΈΠΏ: function AddTorque (torque: Vector3, mode: ForceMode = ForceMode.Force) : void // РаскручиваСт АВВ Π²ΠΎΠΊΡ€ΡƒΠ³ глобальной оси Y. function FixedUpdate () { rigidbody.AddTorque (Vector3.up * 10); } // 2 Ρ‚ΠΈΠΏ: function AddTorque (x: float, y: float, z: float, mode: ForceMode = ForceMode.Force) : void // Π”Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ снова Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмС измСрСния. function FixedUpdate () { rigidbody.AddTorque (0, 10, 0); }

АВВ взаимодСйствуСт с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.
Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΡˆΠΈΡ… *АВВ* ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Collider "Π°ΠΌΠΈ (ΠΈΠ»ΠΈ Collision "Π°ΠΌΠΈ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ^.^).
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°Ρ… Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π½ΠΈΠΆΠ΅.


Π Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅!
Π‘ΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ вашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, вСдь ΠΎΠ½ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ Π΄Π°ΠΆΠ΅ массы *АВВ*. Если ваш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ двиТСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, висит Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅ ΠΈΠ»ΠΈ Π½Π΅ сталкиваСтся, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ (Π½Π΅ *АВВ*, Π° самого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ· 3D Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ Π½Π° стадии модСлирования ΠΈ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ всСх ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΏΠΎ АВВ =
На этом, ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ *АВВ* ΠΈΠ»ΠΈ *Rigidbody*, я, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π·Π°ΠΊΠΎΠ½Ρ‡Ρƒ. Однако, Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π° подсказок, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π΄ΠΎ сюда долистал:)

  1. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΠ±Π° Π² *Unity* Ρ€Π°Π²Π΅Π½ 1 ΠΌΠ΅Ρ‚Ρ€Ρƒ , поэтому, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΡƒΠ±, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² мСню GameObject - Create Other - Cube
  2. ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *Mass* опрСдСляСт, ΠΊΠ°ΠΊ Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.
  3. *Mass* Π½Π΅ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ падСния с высоты, для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ *Drag*.
  4. Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ значСния *Drag*, Ρ‚Π΅ΠΌ большС вСсит ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚. стандартныС значСния Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ 0.001 (Ρ‚Π²Π΅Ρ€Π΄Ρ‹ΠΉ кусок ΠΌΠ΅Ρ‚Π°Π»Π»Π°) Π΄ΠΎ 10 (ΠΏΠ΅Ρ€Ρ‹ΡˆΠΊΠΎ).
  5. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов, Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ·ΠΈΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ *АВВ* с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ *Kinematic*.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ скриптовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ воздСйствия Π²Π½Π΅ΡˆΠ½ΠΈΡ… сил Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ *АВВ* ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ссылкам:
*AddForce*
*AddTorque*

Для измСнСния скриптового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° тСкстС с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ языка программирования!

Colliders
=
= Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? =
Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрСли ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ *Rigidbody* ΠΈ упомянули Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ *ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹*. *ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€* для нас - Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π²ΠΈΠ΄Π΅ сСтки простой ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, слоТной Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π²ΠΎΠΊΡ€ΡƒΠ³ нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ части ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ссли Ρ‚Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ.
Π§Ρ‚ΠΎΠ±Ρ‹ наглядно ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‚ΠΎΠΊΠ°ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΌΠΈΡ€Π° *Warcraft 3*, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π°ΠΌΠΈ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π΄ΡƒΠ΄Π°Π΄ΠΎΠ² Π½Π΅ присвоили тСкстуры ΠΏΡƒΡ‚Π΅ΠΉ - это Π±ΡƒΠ΄Π΅Ρ‚ наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚; Π° Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡƒΡ‚ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ЕстСствСнно, это довольно Π³Ρ€ΡƒΠ±ΠΎΠ΅ сравнСниС, вСдь Π² *Unity* ΠΎΠ½ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹. Π§Ρ‚ΠΎ-ΠΆ, рассмотрим ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’ΠΈΠ΄Ρ‹ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ². =
ΠšΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· мСню Component - Physics . Π•ΡΡ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΎΠ²:

  • Box Collider - Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΡƒΠ±Π°.
  • Sphere Collider - Π² Ρ„ΠΎΡ€ΠΌΠ΅ сфСры.
  • Capsule Collider - Π² Ρ„ΠΎΡ€ΠΌΠ΅ капсулы.
  • Mesh Collider - автоматичСски создаСт ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ сСтки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ этого ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°. Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для статичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΉ трассы.
  • Wheel Collider - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для колСс, ΠΎΡ‡Π΅Π½ΡŒ полСзная Π²Π΅Ρ‰ΡŒ.
  • Compound Collider - ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вмСстС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ слоТный ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΊ Π½ΠΈΠΌ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠ΅ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ для машин.


НастраиваСмыС характСристики =
Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, всС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

  • *ΠšΡƒΠ±*

* *Material* - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ взаимодСйствуСт с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΈ этом присваивая физичСский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚Π°Π»Π», Π»Π΅Π΄ ΠΈ Ρ‚.ΠΏ.
* Is Trigger - Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ воздСйствуСт скрипт, Π° Π½Π΅ Ρ„ΠΈΠ·ΠΈΠΊΠ°.
* *Size* - Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° ΠΏΠΎ осям X-Y-Z.
* *Center* - ПолоТСниС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

  • *Π‘Ρ„Π΅Ρ€Π°*

* *Radius* - Радиус сфСры, замСняСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ *Size*.
* ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

  • *ΠšΠ°ΠΏΡΡƒΠ»Π°* (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€)

* *Radius* - Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° капсулы.
* *Height* - Высота цилиндричСской части ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° (Π±Π΅Π· скруглСнных оснований).
* *Direction* - НаправлСниС ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.


  • Mesh Collider (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€)

* *Mesh* - Π’Ρ‹Π±ΠΎΡ€ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ мСша для создания ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°.
* Smooth Sphere Collisions - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сглаТиваСт ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слСдуСт Π½Π° Π³Π»Π°Π΄ΠΊΠΈΡ… повСрхностях, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΉ Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚ Π±Π΅Π· лишнСй углоатости, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ сфСры.
* *Convex* - ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ позволяСт Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρƒ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅. Convex Mesh Collider "Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π΄ΠΎ 255 Ρ‚Ρ€ΠΈΠ°Π½Π³Π»ΠΎΠ² .

  • Wheel Collider (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€)

* *Radius* - Радиус колСса.
* Suspension Distance - Максимальная дистания увСличСния подвСски колСса. ПодвСска всСгда увСличиваСтся Π²Π½ΠΈΠ· ΠΏΠΎ локальной оси *Y*.
* Suspension Spring - ПодвСска пытаСтся Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ силы.

  1. Spring: ΠŸΡ‹Ρ‚Π°Π΅Ρ‚ΡΡ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ (ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ). Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‚Π΅ΠΌ быстрСС ΠΎΠ½Π° достигаСтся.
  2. Damper: БмягчаСт, замСдляСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ двиТСния подвСски. Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ двигаСтся Π°ΠΌΠΎΡ€Ρ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€.
  3. Target Position: ΠŸΠΎΠ»Π½Ρ‹ΠΉ "ΠΏΡƒΡ‚ΡŒ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ "ΠΏΡ€ΠΎΠΉΡ‚ΠΈ" подвСска. *0* ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ расправлСнный Π°ΠΌΠΎΡ€Ρ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€, Π° *1* - ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сТатый. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся 0, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠΉ подвСскС..

* *Mass* - Масса колСса.
* Forward/Sideways Friction - ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ трСния ΠΏΡ€ΠΈ простом ΠΊΠ°Ρ‡Π΅Π½ΠΈΠΈ колСса ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°Ρ‡Π΅Π½ΠΈΠΈ Π±ΠΎΠΊΠΎΠΌ (Ρ‚Π°ΠΊΠΎΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π² заносах ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π΄Ρ€ΠΈΡ„Ρ‚Π΅).

Π’ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° Unity ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ Π΅Π³ΠΎ Π²Ρ€Π°Π³ΠΎΠ² Π² сцСну

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² Unity

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов: спрайт, способ управлСния ΠΈΠΌ ΠΈ способ Π΅Π³ΠΎ взаимодСйствия с ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΌΠΈΡ€ΠΎΠΌ. Рассмотрим этот процСсс шаг Π·Π° шагом ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, со спрайта. Π’ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. Π‘ΠΊΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΏΠ°ΠΏΠΊΡƒ "Textures"
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ спрайт ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ "Player"
  3. НастройтС спрайт Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ отобраТался Π² свойствС "Sprite" ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° "Sprite Renderer"

Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡƒΡ€ΠΎΠΊΡƒ. ΠœΡ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ дСйствия для Ρ„ΠΎΠ½Π° ΠΈ "Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°".

  1. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² слой "2 - Foreground"
  2. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π± Π½Π° (0.2, 0.2, 1)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ нСсколько слов ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…. ΠœΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ "Sprite Renderer". Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€Ρ‹ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π² ΠΏΠ°Π½Π΅Π»ΠΈ "Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€".

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€Ρ‹ выглядит Ρ‚Π°ΠΊ:


Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚: Transform . Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², сколько Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. НапримСр, скрипты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎΠΊΠ° сущСствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.


(Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π³Π°Π»ΠΎΡ‡ΠΊΡƒ чСкбокса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ свойство, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ Ρ‚.Π΄.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ сомпонСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π½ΡƒΡ‚Ρ€ΡŒ этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ сам Π½Π°ΠΉΠ΄Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ.

Sprite Renderer являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способСн ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ спрайт-тСкстуру. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΈΠ³Ρ€ΠΎΠΊΡƒ!

ДобавляСм бокс-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ (Box Collider)

НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚" ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ "Box Collider 2D". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ "Π‘Ρ†Π΅Π½Π°" зрСния ΠΈ настройки Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² "Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅" Π² ΠΏΠΎΠ»Π΅ "Π Π°Π·ΠΌΠ΅Ρ€" (Size).

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ рСдактирования бокс-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бокс-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈ Π·Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ shift Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° бокс-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π΅ (Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ) появились Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ€Ρ‹Ρ‡Π°ΠΆΠΊΠ°. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ бокс-ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, синий ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ прСдставляСт собой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Transform вашСго ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π° Ρ€Π°Π²Π½Ρ‹ΠΌ (10, 10) .

Π­Ρ‚ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ для настоящСго шмапа, Π½ΠΎ всС ΠΆΠ΅ мСньшС, Ρ‡Π΅ΠΌ спрайт:


Π’ настоящСС врСмя, этого Π²ΠΏΠΎΠ»Π½Π΅ достаточно.

Π‘ΠΎΠ²Π΅Ρ‚ : Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ шмап , Π²Π°ΠΌ придСтся ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ настройкС хитбоксов – ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΎΠΌΡƒ элСмСнту Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ спрайта. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΊΠ°ΠΊ shape – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ "Circle Collider 2D". Благодаря Unity, Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ этом Π½Π΅ мСняСтся, Π½ΠΎ это позволяСт Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³Π΅ΠΉΠΌΠΏΠ»Π΅ΠΉ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€ΠΎΠΊ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Ρ„Π°Π±. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ°!


2D ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ супСр Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ хитбокс, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Unity "ΠŸΠΎΠ»ΠΈΠ³ΠΎΠ½Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ 2D" (Polygon Collider 2D). Π­Ρ„Ρ„Π΅ΠΊΡ‚ ΠΎΡ‚ этого Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ Π·Π°Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΊΠ°ΠΊΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

"Polygon Collider 2D" ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ "Scene". Для удалСния Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π°ΠΆΠΌΠΈΡ‚Π΅ cmd ΠΈΠ»ΠΈ ctrl , Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ shift

Магия Rigidbody

ПослСдний ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для добавлСния Π½Π° нашСго ΠΈΠ³Ρ€ΠΎΠΊΠ°: "Rigidbody 2D". Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ физичСскому Π΄Π²ΠΈΠΆΠΊΡƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ пространствС. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ столкновСния Π² скриптС.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Player Π² "Hierarchy".
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ "Rigidbody 2D".

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠΈΠ³Ρ€Π°Ρ‚ΡŒ" ΠΈ смотритС, Ρ‡Ρ‚ΠΎ Ρƒ нас Π²Ρ‹ΡˆΠ»ΠΎ:

ΠšΠΎΡ€Π°Π±Π»ΡŒ ΠΏΠ°Π΄Π°Π΅Ρ‚! И ΠΊΠ°ΠΊ ΠΏΠ°Π΄Π°Π΅Ρ‚! ΠŸΠ΅Ρ€Π΅Π΄Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ нашСй любимой силС тяТСсти. По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°Π΄Ρ€Ρ‹ с Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ rigidbodies прибавляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ массы, ΠΊΠΎΡ€Π°Π±Π»ΡŒ притягиваСтся ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана.

По-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ускорниС свободного падСния Π² Unity Ρ€Π°Π²Π½ΠΎ 9.81 , Ρ‚.Π΅. ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с Π·Π΅ΠΌΠ½ΠΎΠΉ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Гравитация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² любой ΠΈΠ³Ρ€Π΅, Π½ΠΎ Π½Π°ΠΌ ΠΎΠ½Π° Π½Π΅ Π½ΡƒΠΆΠ½Π°. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΡŽ Π½Π° Rigidbody ΠΌΠΎΠΆΠ½ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС "Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±" Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ. Π’ΠΎΡ‚ ΠΈ всС, ΠΊΠΎΡ€Π°Π±Π»ΡŒ снова Π»Π΅Ρ‚ΠΈΡ‚. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π² окошкС "Fixed Angles", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ корабля, обусловлСнноС Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΈΠ·ΠΈΠΊΠΎΠΉ.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ°

Настало врСмя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скриптик (Π²Ρ‹ вСдь Π½Π΅ Π΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ всС Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ само)? Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π² Unity C#-скрипт Π² ΠΏΠ°ΠΏΠΊΠ΅ "Scripts" ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ это "PlayerScript". ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ подмСню "Sync" (Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° "Assets" Π² строкС мСню, Π·Π°Ρ‚Π΅ΠΌ Π½Π° "Sync MonoDevelop Project") для ΠΏΡ€Π°Π²ΠΊΠΈ созданного Unity скрипта.

"Sync MonoDevelop Project" : Π­Ρ‚ΠΎ подмСню Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странноС.Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя, Π΄Π°ΠΆΠ΅ Ссли ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.
ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это мСню ΠΏΡ€ΠΈ создании ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ скрипта, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Unity создаст Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ привяТСт ΠΈΡ… ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Unity (для Visual Studio, Xamarin Studio ΠΈΠ»ΠΈ MonoDevelop).
Если вмСсто этого Π²Ρ‹ просто ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ скрипт, компилятор вашСго IDE, скорСС всСго, зарСгистрируСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ошибки, Π½Π΅ Unity. Π­Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½ΠΎ функция автоматичСского Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Unity Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² скриптС ΡƒΠΆΠ΅ прописаны ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Start ΠΈ Update . Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

  • Awake() вызываСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаСтся. По сути Π°Π½Π°Π»ΠΎΠ³ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-конструктора.
  • Start() выполняСтся послС Awake() . ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Start() Π½Π΅ вызываСтся, Ссли скрипт Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (remember the checkbox on a component in the "Inspector").
  • Update() выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° in the main game loop.
  • FixedUpdate() вызываСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΊ число ΠΊΠ°Π΄Ρ€ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ вмСсто Update() ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с Ρ„ΠΈΠ·ΠΈΠΊΠΎΠΉ ("RigidBody" ΠΈ Π΄Ρ€.).
  • Destroy() вызываСтся, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ уничтоТаСтся. Π­Ρ‚ΠΎ ваш послСдний шанс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄.

Π£ вас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ столкновСний:

  • OnCollisionEnter2D(CollisionInfo2D info) выполняСтся, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° соприкасаСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ.
  • OnCollisionExit2D(CollisionInfo2D info) выполняСтся, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ соприкасаСтся Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ.
  • OnTriggerEnter2D(Collider2D otherCollider) выполняСтся, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° соприкасаСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ "Trigger".
  • OnTriggerExit2D(Collider2D otherCollider) выполняСтся, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° пСрСстаСт ΡΠΎΠΏΡ€ΠΈΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°ΠΊ "Trigger".

Π˜Ρ‚Π°ΠΊ, с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΏΠΎΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ, ΠΏΠΎΡ€Π° Π² Π±ΠΎΠΉ. Или Π½Π΅Ρ‚, ΠΏΠΎΠ³ΠΎΠ΄ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ: ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС, ΠΎ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ с Π²Π°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ‚, суффикс "2D". Box Collider 2D , a Rigidbody 2D , OnCollisionEnter2D , OnTriggerEnter2D ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΈ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ появились с Unity 4.3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ…, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с физичСским Π΄Π²ΠΈΠΆΠΊΠΎΠΌ, встроСнным Π² Unity 4.3, для 2D-ΠΈΠ³Ρ€ (Π½Π° основС Box2D) вмСсто Π΄Π²ΠΈΠΆΠΊΠ° для 3D-ΠΈΠ³Ρ€ (PhysX). Π”Π²Π° Π΄Π²ΠΈΠΆΠΊΠ° ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅. Если Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Box2D для 2D-ΠΈΠ³Ρ€), ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°qntcm Π΅Π³ΠΎ. ИмСнно поэтому ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с суффиксом "2D".

Π’ скрипт для нашСго ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько простых элСмСнтов управлСния, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: клавиши со стрСлками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΡ€Π°Π±Π»ΡŒ.

Using UnityEngine; /// /// ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° /// public class PlayerScript: MonoBehaviour { /// /// 1 - ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ двиТСния /// public Vector2 speed = new Vector2(50, 50); // 2 - Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния private Vector2 movement; void Update() { // 3 - ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ оси float inputX = Input.GetAxis("Horizontal"); float inputY = Input.GetAxis("Vertical"); // 4 - Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ movement = new Vector2(speed.x * inputX, speed.y * inputY); } void FixedUpdate() { // 5 - ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° rigidbody2D.velocity = movement; } }

Поясню Ρ†ΠΈΡ„Ρ€Ρ‹ Π² коммСнтариях ΠΊ ΠΊΠΎΠ΄Ρƒ:

  1. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅ "Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€". Π­Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для корабля.
  2. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π°.
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΡƒΡŽ ось, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² "Edit" -> "Project Settings" -> "Input" . ΠŸΡ€ΠΈ этом ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ†Π΅Π»Ρ‹Π΅ значСния ΠΌΠ΅ΠΆΠ΄Ρƒ [-1, 1] , Π³Π΄Π΅ 0 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Π°Π±Π»ΡŒ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ΅Π½, 1 - Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΡ€Π°Π²ΠΎ, -1 - Π²Π»Π΅Π²ΠΎ.
  4. Π£ΠΌΠ½ΠΎΠΆΠΈΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.
  5. ИзмСним ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ rigidbody. Π­Ρ‚ΠΎ даст Π΄Π²ΠΈΠΆΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это Π² FixedUpdate() , ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌ для всСго, Ρ‡Ρ‚ΠΎ связано с Ρ„ΠΈΠ·ΠΈΠΊΠΎΠΉ.
Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ° ΠΎ ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ… C# : ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ speed Ρ‡Π»Π΅Π½Π° класса – ΠΎΠ½ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ ΠΊΠ°ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ. Π’ C# пСрСмСнная Ρ‡Π»Π΅Π½Π° класса Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сохранСния Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
Но смСна Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ позволяСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Unity Ρ‡Π΅Ρ€Π΅Π· панСль "Inspector", Π΄Π°ΠΆΠ΅ Π² процСссС ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… возмоТностСй Unity, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Π΅ΠΉΠΌΠΏΠ»Π΅ΠΉ Π±Π΅Π· использования ΠΊΠΎΠ΄Π°.
ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ создаСм скрипты, Π° это Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ классичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C#. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ соглашСний.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ скрипт ΠΊ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Для этого ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ скрипт ΠΈΠ· ΠΎΠΊΠ½Π° "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚" (Project) Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² "Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ" (Hierarchy). Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° "Add Component" ΠΈ Π΄ΠΎΠ±Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ "Play" Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. ΠšΠΎΡ€Π°Π±Π»ΡŒ двиТСтся! Congratulations, Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали эквивалСнт "Hello, World!" для ΠΈΠ³Ρ€Ρ‹:)

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ значСния скорости Π² "Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅", ΠΈ посмотритС Ρ‡Ρ‚ΠΎ ΠΈΠ· этого получится.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны: измСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², сдСланныС Π²ΠΎ врСмя, ΠΈΠ³Ρ€Ρ‹ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π΅ остановитС! Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ - это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт для настройки гСймплСя, Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния. Π­Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚Ρ€ΡŽΠΊ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ€Π°Π³

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСприятСлСй, стрСмящихся ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ наш ΠΊΠΎΡ€Π°Π±Π»ΡŒ. ΠŸΡƒΡΡ‚ΡŒ ΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π»ΠΎΠ²Π΅Ρ‰ΠΈΠΉ спрут, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ "Poulpi":


Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ спрайт. Для этого:

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΏΠ°ΠΏΠΊΡƒ "Textures".
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ спрайт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.
  3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свойство "ΠœΠ°ΡΡˆΡ‚Π°Π±" (Scale) Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ВрансформированиС (Transform) Π½Π° (0.4, 0.4, 1) .
  4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ "Box Collider 2D" Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ (4, 4) .
  5. Add a "Rigidbody 2D" with a "Gravity Scale" of 0 and "Fixed Angles" ticked.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅Ρ„Π°Π± ΠΈ... вуаля!


Π‘ΠΊΡ€ΠΈΠΏΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ скрипт, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ осьминога Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Для этого создайтС Π½ΠΎΠ²Ρ‹ΠΉ скрипт, Π½Π°Π·Π²Π°Π² Π΅Π³ΠΎ "MoveScript".

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ обСспСчиваСтся систСмой Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Unity. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° скрипты с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ функциями. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ гигантский скрипт с большим количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ ваш Π²Ρ‹Π±ΠΎΡ€, Π½ΠΎ я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ это.

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ написали Π² Β«PlayerScript" для двиТСния пСрсонаТа. We will add another designer (a public member you can alter in the "Inspector") variable for the direction:

Using UnityEngine; ///

/// ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€Ρ‹ /// public class MoveScript: MonoBehaviour { // 1 - ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ /// /// Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° /// public Vector2 speed = new Vector2(10, 10); /// /// НаправлСниС двиТСния /// public Vector2 direction = new Vector2(-1, 0); private Vector2 movement; void Update() { // 2 - ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ movement = new Vector2(speed.x * direction.x, speed.y * direction.y); } void FixedUpdate() { // ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Rigidbody rigidbody2D.velocity = movement; } }

ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ скрипт ΠΊ ΠΎΡΡŒΠΌΠΈΠ½ΠΎΠ³Ρƒ. НаТмитС "Play" ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ спрут двиТСтся Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅:

Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ€Π°Π³ΠΎΠΌ, ΠΎΠ±Π° спрайта столкнутся. Они просто Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ столкновСнии.

Π’Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ°, двиТущСгося с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π’Π°ΠΊΠΆΠ΅, ΠΌΡ‹ создали Π²Ρ€Π°Π³Π° с Π·Π°Ρ‡Π°Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ AI. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ! А для этого, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ боСприпасы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ создадим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ .