Daftar Objek
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 65 dari 85.
array memiliki panjang tetap yang ditentukan saat dibuat. Spawner tidak tahu sebelumnya berapa banyak object yang akan dibuat, jadi spawner menyimpannya dalam List<T>: array C# yang dapat bertambah. List ini berada di System.Collections.Generic, dan T adalah tipe item yang disimpan. Air mancur ini mengingat setiap koin yang dibuatnya:
using System.Collections.Generic;
using UnityEngine;
public class CoinFountain : MonoBehaviour
{
public GameObject coinPrefab;
List<GameObject> coins = new List<GameObject>();
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
GameObject coin = Instantiate(coinPrefab, transform.position, Quaternion.identity);
coins.Add(coin);
Debug.Log(coins.Count + " coins");
}
}
}Add menambahkan item di bagian akhir, dan Count menunjukkan jumlah item, sedangkan array menggunakan Length. Cara membacanya sama seperti array: coins[0] adalah koin pertama, dan foreach (GameObject c in coins) mengunjungi semuanya. coins.Remove(coin) menghapus item tersebut, sedangkan coins.RemoveAt(0) menghapus item pertama. Item setelahnya bergeser satu tempat ke depan.
List itu sendiri harus dibuat dengan new. Field yang ditulis sebagai List<GameObject> coins; menyimpan null, dan Add pertama akan berhenti dengan NullReferenceException.
Tantangan
SedangBuat setiap klik menambahkan sebuah box ke list.
- Tambahkan
using System.Collections.Generic;dan fieldList<GameObject> boxes = new List<GameObject>();. - Saat diklik, munculkan
boxPrefabditransform.position + new Vector3(boxes.Count * 1.5f, 0, 0), tanpa rotasi, lalu tambahkan keboxes. - Catat
"Boxes: " + boxes.Count.
Tekan tombol “Main” dan klik tiga kali: tiga box berdiri berjejer. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class BoxStacker : MonoBehaviour
{
public GameObject boxPrefab;
// boxes: List<GameObject> privat
void Update()
{
// Klik: buat sebuah box, posisikan 1.5 lebih ke kanan untuk setiap box dalam list, tambahkan ke list, lalu catat jumlahnya
}
}
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 Lampu11Prefab dan Pemunculan
Prefab dan InstantiateMunculkan dengan TimerMunculkan dalam GridDaftar ObjekAmbil Kembali Objek TerbaruHancurkanPemunculan AcakUlasan: Kembang Api6Transformasi dan Hierarki
Objek Induk dan AnakKibarkan BenderaSkalaMelihat BendaBergerak Menuju TitikRekap: Bulan yang MengorbitLatihan sendiri: Playground Unity