Pisanan, gawe obyek sing bakal dadi mungsuh. Menehi mungsuhmu dina mungsuh.
Yen mungsuh lan tokoh kasebut tabrakan, tag kasebut masuk akal amarga skrip kasebut bisa ngungkapake yen mung obyek kanthi tag mungsuh sing relevan minangka mungsuh.
Gawe skrip C # sing diarani "Musuh".
Bukak skrip ing Visual Studio. Kaping pisanan, mungsuh butuh siji Badan kaku-Komponèn:
kaku kaku pribadi2D pribadi;
Saiki kita butuh fungsi sing siyap. Dadi aktif sawetara wektu sadurunge wiwitan.
batal Awakening ()
{
Wong kaku = GetComponent ();
}
Saiki tambah komponen Rigidbody2D ing Unity menyang mungsuh.
Saiki seret skrip anyar menyang mungsuh.
Gerakan lawan
Saiki sampeyan pengin mungsuh pindhah menyang arah tartamtu adhedhasar kacepetan:
Kita butuh: kacepetan ngambang pribadi
Gerakan batal umum (arah Vektor 2)
{
body.velocity = anyar Vector2 (arah.x * kacepetan, awak.velocity.y);
}
Supaya lapangan spat float pribadi katon ing inspektur, sijine ing ngarepe: [SerializeField]
Arah mungsuh kudu diganti:
We kudu:
gerakan Vector2 pribadiDirection;
Saiki ing ngisor iki wis ditemtokake:
gerakanDirection = arah;
Sampeyan ijolan direction.x kanthi gerakanDirection.x.
Sampeyan mbutuhake fungsi nganyari kanggo ngganti arah:
Pindhah (gerakanDirection);
Sawise pindhah menyang siji arah, mungsuh bakal bali menyang arah liyane.
Tabrakan karo mungsuh
Salajengipun, lawan kedah "nemokaken tabrakan".
pribadi OnCollisionEnter2D (tabrakan collision2D)
{
yen (collision.gameObject.CompareTag ("Musuh"))
{
gerakanDirection * = -1f;
}
Ketik ing ngisor iki minangka gerakanDirection ing fungsi awake:
gerakanDirection = Vektor2.nggol;
Dheweke isih butuh siji Collider. Tambah collider 2D sing cocog.
Tambah collider kaping 2 sing luwih cilik menyang bagean ndhuwur mungsuh. Collider kaping 2 uga kudu dadi pemicu. Collider dirancang kanggo ngilangi mungsuh nalika pamuter mlumpat.
Mungsuh udur
Klik-tengen ing jendela hirarki kanggo nggawe obyek kosong lan jeneng minangka spawner.
Mungsuh katon, gumantung saka arah pituhe. Sabanjure kita butuh SpawnerScript.
Ing kono sampeyan nemtokake tampilan mungsuh.
Pisanan kita butuh:
[SerializeField]
Liwat SerializeField, prefab katon langsung ing spawner.
mungsuh pribadi [] mungsuh;
Sampeyan uga butuh variabel:
[SerializeField]
float pribadi spawnTimeDelay, startSpawnDelay;
Kanthi iki kita nemtokake wektu ngasilake lan interval ing antarane pamijahan.
Kita uga butuh:
bool umum rampung;
Iki nyetel mungsuh pungkasan kanggo spawner. Game Manager duwe "pengawasan" kanggo para spawner. Bagean sing wis ditemtokake nemtokake level rampung nalika ora ana mungsuh maneh lan spawner kabeh mungsuh sing dikirim menyang level kasebut.
Saiki coroutine dibutuhake supaya mungsuh bisa ngasilake.
Mungsuh uga kudu pindhah menyang arah tartamtu.
Pungkasane, kudu dipriksa manawa pamijilan wis rampung.
IEnumorator dibutuhake kanggo coroutine. Unity nangani coroutine ing latar mburi. Padha uga dumadi ing saben pigura:
tunas IEnumerator pribadi ()
Saiki sistem dijaluk ngenteni sawetara detik supaya mungsuh katon:
ngasilake ngasilake WaitForSeconds anyar ();
Kita ngenteni wiwitanSpawnDeley:
ngasilake ngasilake WaitForSeconds anyar (startSpawnDelay);
Kanggo informasi wektu sing dibutuhake:
kanggo (int i = 0; i <dawa; i ++)
Saben mungsuh kudu ngasilake nomer tartamtu sawise wektu tartamtu.
Makane uga ana: mungsuh. Panjang:
kanggo (int i = 0; i <mungsuh. Panjang; i ++)
Saiki referensi kanggo mungsuh kudu digawe:
MungsuhInstansi mungsuh = Instantiate (mungsuh [i], transform.position);
Transform.posisi ngandhani sistem manawa mungsuh kudu muncul ing spawner.
Quaternion.idhentitas nuduhake rotasi.
MungsuhInstansi mungsuh = Instantiate (mungsuh [i], transform.position, Quaternion.identity);
Gerakan mungsuh bisa ditetepake kanthi luwih rinci:
mungsuhInstance. Gerak (transformasi hak);
We nambah asil ngasilake WaitforSeconds anyar (SpawnTimeDelay); sepisan maneh, wektu iki karo SpawnTimeDelay.
Iki tegese saben mungsuh katon ana, Unity ngenteni wektu khusus kasebut nganti bertelur sabanjure.
Pungkasane, sistem kudu mriksa manawa pamijahan wis rampung:
rampung = i> = mungsuh.Lenght - 1;
Pungkasane, Coroutnie kudu diwiwiti:
batal wiwitan ()
{
StartCoroutine (Spawn ());
}
Skrip pungkasan kanggo pemijahan kudu kaya iki:
Ing skrip spawn sing dipasang saiki sampeyan bisa nyetel frekuensi spawn:
Sampeyan saiki bisa nyeret lan nyelehake mungsuh menyang skrip Spawner: