Menu
CoddyTech

Sekme ve Sürtünme

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 12 / 63.

Bir çarpıştırıcının nasıl sektiği ve kaydığı, PhysicsMaterial’ından (Unity 6’daki adı; eski sürümlerde PhysicMaterial olarak adlandırılıyordu) kaynaklanır. bounciness, 0 (sekme yok) ile 1 (hızının tamamını korur) arasında değişir. dynamicFriction, kayan bir cismi yavaşlatır; staticFriction ise duran bir cismin kaymaya başlamadan önce ne kadar kuvvetle itilmesi gerektiğini belirler. Malzemesi olmayan bir çarpıştırıcı, sürtünme değeri 0.6 ve sekme değeri 0 olan bir malzeme gibi davranır. Bu süper top, kendi çarpıştırıcısına zıplayan bir malzeme verir:

void Start()
{
    PhysicsMaterial mat = GetComponent<Collider>().material;   // bu collider'ın kendi kopyası
    mat.bounciness = 0.9f;
    mat.bounceCombine = PhysicsMaterialCombine.Maximum;
}

Bir temasta iki çarpıştırıcı bulunur, bu nedenle Unity bu ikisinin değerlerini birleştirir. Her malzeme bunun nasıl yapılacağını bounceCombine (sekme için) ve frictionCombine (sürtünme için) ile belirler; her biri dört moddan birini seçer: Average (varsayılan), Minimum, Multiply veya Maximum. İki çarpıştırıcı farklı modlar seçtiğinde, listedeki daha sonra gelen mod kullanılır. Malzemesi olmayan bir zeminde Average, top için (0.9 + 0) / 2 = 0.45 sonucunu verir. Maximum ile her sekmede hızının 0.9’unu korur; bu da yüksekliğinin 0.9 x 0.9 = %81’i demektir, çünkü yükseklik hızın karesiyle orantılıdır.

.material, bu çarpıştırıcıya malzemesinin kendine ait bir kopyasını verir; böylece değişiklikler yalnızca onu etkiler. .sharedMaterial, malzeme varlığının kendisidir ve onu kullanan tüm çarpıştırıcılar tarafından paylaşılır; hiç malzeme atanmamış bir çarpıştırıcıda ise değeri null olur.

challenge icon

Görev

Kolay

Oyun alanına yüzeylerini ekle. Surface betiği mavi Trambolin'de (bounce 0.8, friction 0.6) ve Buz şeridinde (bounce 0, friction 0.1) bulunuyor. Topun ve kasanın kendilerine ait malzemeleri yok.

  • Start() içinde, bu çarpıştırıcının kendi malzemesini bounce ve friction değerlerine ayarla (hem dinamik hem de statik).
  • Bir yüzeye inen her şey, yüzeyin tam bounce değeriyle zıplamalı; üzerinde kayan her şey ise malzemesi olmayan nesnelerin 0.6 değeriyle karışım değil, yüzeyin kendi friction değerini almalı.

Topun zıplamasını izlemek için Play'e, ardından Check'e bas: bu ayrıca kasayı buz üzerinde kaydırır.

Kendin dene

using UnityEngine;

public class Surface : MonoBehaviour
{
    public float bounce = 0f;
    public float friction = 0.6f;

    void Start()
    {
        // Bu collider'a bounce ve friction değerlerine sahip kendi material'ını ver
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fizik ve Oynanış bölümündeki tüm dersler