Menu
CoddyTech

Ölçek

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 33 / 85.

transform.localScale, bir nesnenin boyutunu her bir ekseni boyunca çarpar. Varsayılan bir küpün her kenarı 1 birimdir; bu nedenle localScale değeri (4, 1, 0.5) olan bir küp 4 birim genişliğinde, 1 birim yüksekliğinde ve yarım birim derinliğindedir. Her yönde aynı boyuta ulaşmak için (1, 1, 1) olan Vector3.one ile çarpın. Bu sabun köpüğü, genişliği 3 birime ulaşana kadar saniyede 0.3 birim büyür:

public float size = 1f;

void Update()
{
    size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
    transform.localScale = Vector3.one * size;
}

Mathf.Min(a, b), iki sayıdan küçük olanı döndürür; bu nedenle size 3'e ulaşana kadar büyür ve sonra 3 olarak kalır.

Ölçeklendirme, nesnenin pivot noktası etrafında gerçekleşir; Unity'nin yerleşik şekillerinde bu nokta merkezdir. Yerde duran, 1 birimlik bir küpün merkezi y = 0.5 konumundadır. Küpü 3 birim yüksekliğe ölçeklendirirseniz, merkezi bu noktadan 1.5 birim yukarıya ve 1.5 birim aşağıya ulaşır; dolayısıyla yarısı yere gömülür. Yerde durması için merkezinin yüksekliğinin yarısında olması gerekir: y = 1.5.

Bir çocuk nesnenin boyutu, ebeveyninin boyutuyla çarpılır: 2 kat ölçeklendirilmiş bir ebeveynin altındaki localScale değeri (1, 1, 1) olan bir çocuk nesne iki kat büyük çizilir. transform.lossyScale, dünyadaki son boyutu okur ve salt okunurdur; ayarladığınız değer localScale değeridir.

challenge icon

Görev

Orta

Buz küpünü yerde tutarak 0.4'e kadar küçült.

  1. float size = 1f; alanını ekle. Update() içinde size = Mathf.Max(size - melt * Time.deltaTime, 0.4f); değerini ata.
  2. transform.localScale = Vector3.one * size; ayarını yap.
  3. Alt kısmını y = 0'da tut: x ve z'yi koruyarak konumun y değerini size / 2 yap.

“Oyna” düğmesine bas: küp küçülür ve yerde kalır. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Melt : MonoBehaviour
{
    public float melt = 0.2f;

    void Update()
    {
        // Alt kısmı yerde kalacak şekilde, saniyede melt kadar küçülerek 0.4'e in
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground