Menu
CoddyTech

Yerçekimi ve Kütle

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

Bir Rigidbody, Add a Component bölümünde eklediğin gibi, nesnesini Unity'nin fiziğine devreder. O andan itibaren yerçekimi nesneyi her saniye 9.81 m/s hızlandırır ve Rigidbody'de bunun nasıl gerçekleşeceğini belirleyen ayarlar bulunur. Bunlardan ikisi, kilogram cinsinden mass (yeni bir Rigidbody için 1) ve useGravity'dir (yeni bir Rigidbody için açık).

Kütle, nesnelerin ne kadar hızlı düştüğünü değiştirmez. Yerçekimi ağır bir cismi daha güçlü çeker; ağır cismin hızlanması da tam olarak aynı oranda daha zordur. Bu yüzden aynı yükseklikten bırakılan 1 kg'lık bir sandık ve 50 kg'lık bir örs aynı karede yere iner. Cisimler birbirini ittiğinde kütle önemlidir: örs sandığı yana iterken sandık örsü zar zor hareket ettirir. Bu parti balonuna düşük bir kütle verilir ve yerçekimi onu etkilemez; bu yüzden sahnede yerleştirildiği yerde asılı kalır:

void Start()
{
    Rigidbody rb = GetComponent<Rigidbody>();
    rb.mass = 0.2f;
    rb.useGravity = false;
}

useGravity kapalıyken balonun kütlesi hâlâ vardır ve bir şey ona çarptığında hâlâ hareket eder: yalnızca yerçekimi çekmeyi bırakır. Bunu yeniden true olarak ayarla; yerçekimi nesne bulunduğu yerden itibaren yeniden çeker. Unity'nin fiziğinde hava da yoktur; bu nedenle Rigidbody'sine biraz Doğrusal Sönümleme vermezsen bir tüy de bir tuğla gibi düşer.

challenge icon

Görev

Kolay

İki kasayı as ve ardından Space tuşuna basarak birlikte düşür.

  1. Start() içinde, GetComponent satırının altına rb.mass = weight; ve rb.useGravity = false; ekle.
  2. Update() içinde, Input.GetKeyDown(KeyCode.Space) koşulunda rb.useGravity = true; ayarla.

“Oyna” düğmesine bas ve Space tuşuna bas: ağır Safe ve hafif Box birlikte yere iner. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class CraneLoad : MonoBehaviour
{
    public float weight = 1f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        // Kütleyi weight değerine ayarla ve yerçekiminin çekmesini durdur
    }

    void Update()
    {
        // Space: yerçekiminin yeniden çekmesine izin ver
    }
}

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

Kendi başına pratik yap: Unity playground