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 / 63.

Bir Rigidbody, nesnesini Unity'nin fiziğine devreder; hindistan cevizinin düşerken gösterdiği gibi. O andan itibaren yerçekimi nesneyi her saniye 9.81 m/s hızlandırır ve Rigidbody'de bunun nasıl olacağına karar veren ayarlar bulunur. Bunlardan ikisi, kilogram cinsinden mass (yeni bir Rigidbody için 1) ve useGravity (yeni bir Rigidbody için açık) ayarlarıdır.

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 cismi hızlandırmak da tam olarak aynı ölçüde daha zordur. Bu yüzden aynı yükseklikten bırakılan 1 kg'lık bir sandık ile 50 kg'lık bir örs aynı karede yere iner. Kütle, cisimler birbirini ittiğinde önemlidir: örs sandığı yana savurur ve sandık örsü neredeyse hiç hareket ettiremez. Bu parti balonuna düşük bir kütle verilir ve yerçekimi onu etkilemez; bu nedenle sahnede konduğu yerde asılı kalır:

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

useGravity kapalıyken balonun kütlesi yine vardır ve bir şey çarptığında hâlâ hareket eder: yalnızca yerçekimi onu çekmeyi bırakır. Tekrar true olarak ayarlarsan yerçekimi, nesne nerede olursa olsun onu yeniden çeker. Unity'nin fiziğinde hava da yoktur; bu yüzden Rigidbody'sine biraz Doğrusal Sönümleme vermediğin sürece bir tüy tuğla gibi düşer.

challenge icon

Görev

Kolay

Vinç, rıhtımın üzerinde iki sandık tutuyor: ağır Safe ve hafif Box. Her ikisinde de bir Rigidbody ve CraneLoad betiği bulunuyor; weight değerini Inspector ayarlıyor (Safe için 80, Box için 2).

  • Oyun başladığında Rigidbody'nin kütlesini weight olarak ayarla ve yerçekiminin çekmesini durdur; böylece sandık bulunduğu yerde asılı kalır.
  • Space'e basıldığında yerçekiminin yeniden çekmesine izin ver; böylece sandık düşer.

Play'e bas, Space'e basıp hangi sandığın önce yere indiğini izle, ardından Check'e bas.

Kendin dene

using UnityEngine;

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

    void Start()
    {
        // Kütleyi weight değerine ayarla ve yerçekiminin çekmesini durdur
    }

    void Update()
    {
        // Space: yerçekiminin yeniden çekmesine izin 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