Skala
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 33 dari 85.
transform.localScale mengalikan ukuran objek pada setiap sumbunya. Kubus default memiliki panjang 1 unit pada setiap sisinya, jadi kubus dengan localScale (4, 1, 0.5) memiliki lebar 4 unit, tinggi 1 unit, dan kedalaman setengah unit. Untuk ukuran yang seragam, kalikan Vector3.one, yang bernilai (1, 1, 1). Gelembung sabun ini membesar 0.3 unit per detik hingga lebarnya mencapai 3 unit:
public float size = 1f;
void Update()
{
size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
transform.localScale = Vector3.one * size;
}Mathf.Min(a, b) mengembalikan angka yang lebih kecil dari kedua angka tersebut, jadi size membesar hingga mencapai 3, lalu tetap 3.
Skala diterapkan dari titik pivot objek, yang untuk bentuk bawaan Unity berada di tengah. Kubus berukuran 1 unit yang berada di atas tanah memiliki titik tengah pada y = 0.5. Jika skalanya diubah menjadi setinggi 3 unit, kubus itu menjulur 1.5 unit ke atas dan 1.5 unit ke bawah dari titik tersebut, sehingga separuh kubus terbenam di tanah. Agar berdiri di atas tanah, titik tengahnya harus berada pada setengah tingginya: y = 1.5.
Ukuran objek anak dikalikan dengan ukuran objek induknya: objek anak dengan localScale (1, 1, 1) di bawah objek induk yang skalanya dikalikan 2 akan digambar dua kali lebih besar. transform.lossyScale membaca ukuran akhir tersebut di dunia, dan nilainya hanya bisa dibaca; localScale adalah nilai yang kamu tetapkan.
Tantangan
SedangKecilkan es batu hingga 0.4, sambil menjaganya tetap di tanah.
- Tambahkan field
float size = 1f;. DiUpdate(), atursize = Mathf.Max(size - melt * Time.deltaTime, 0.4f);. - Atur
transform.localScale = Vector3.one * size;. - Jaga bagian bawahnya tetap di y = 0: atur y pada posisinya menjadi
size / 2, dan pertahankan x dan z.
Tekan tombol “Main”: kubus akan menyusut dan tetap berada di tanah. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class Melt : MonoBehaviour
{
public float melt = 0.2f;
void Update()
{
// Perkecil sebesar melt setiap detik hingga 0.4, dengan bagian bawah tetap menyentuh tanah
}
}
Semua pelajaran di Dasar-Dasar Scripting Unity
1Dasar-Dasar C# di Unity
Halo, UnityVariabelDesimal Memerlukan fTeks di ConsoleVariabel yang Menyimpan NilaiIf dan ElseBandingkan AngkaUlasan: Pengumpul Koin7Perulangan dan method
Ulangi dengan forPerulangan di dalam perulanganTulis methodMethod yang Mengembalikan NilaiarrayUlasan: Tangga10Menemukan Benda
Cari Berdasarkan NamaTagCari Berdasarkan TipeReferensi Lebih Baik daripada FindNull di UnityRangkuman: Koin Terdekat13Proyek: Hindari Balok
Karakter PelariBalok dari Langit2Buat Bergerak
Tempatkan KubusBergerak Setiap FrameBerputar Setiap DetikKemudikan dengan TombolRangkuman: Kemudikan Kubus5Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak AntarobjekVector3 adalah StructRangkuman: Pilot Drone8GameObjects dan Komponen
Referensi di InspectorAmbil KomponenKomponen yang HilangTambahkan KomponenRequireComponentTampilkan dan SembunyikanRingkasan: Sakelar Lampu6Transformasi dan Hierarki
Objek Induk dan AnakKibarkan BenderaSkalaMelihat BendaBergerak Menuju TitikRekap: Bulan yang MengorbitLatihan sendiri: Playground Unity