Item yang Bisa Diambil
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 17 dari 71.
Barang yang bisa diambil adalah pemicu dengan skripnya sendiri. Saat sesuatu memasukinya, barang itu memeriksa apakah yang masuk adalah pemain, memberikan efeknya, lalu menghancurkan dirinya sendiri. Skrip pemain menyimpan hasilnya dan menyediakan method publik untuk itu. Paket kesehatan ini menyembuhkan apa pun yang memiliki skrip Health:
// HealthPack.cs
public int amount = 25;
void OnTriggerEnter(Collider other)
{
if (other.TryGetComponent(out Health health) && health.hp < 100)
{
health.Heal(amount);
Destroy(gameObject);
}
}// Health.cs, pada pemain
public int hp = 50;
public void Heal(int amount)
{
hp = Mathf.Min(hp + amount, 100);
Debug.Log("HP: " + hp);
}other.TryGetComponent(out Health health) bernilai false untuk peti yang meluncur ke dalam paket, jadi hanya object dengan skrip Health yang bisa mengambilnya, dan pemain dengan kesehatan penuh membiarkan paket itu tetap ada untuk nanti. Paket ini menemukan pemain melalui other, jadi tidak ada paket yang memerlukan referensi Inspector, dan satu level bisa memuat lima puluh paket. Heal bersifat public karena skrip lain memanggilnya, dan batas 100 berada di Health, satu-satunya tempat yang memiliki hp. Destroy(gameObject) menghapus paket; Destroy(other.gameObject) akan menghapus pemain.
Tantangan
MudahBuat peti amunisi mengisi ulang Blaster (ammo 4, maxAmmo 10).
- Di
Blaster.cs, tambahkanpublic int AddAmmo(int amount):int taken = Mathf.Min(amount, maxAmmo - ammo);, tambahkan nilainya keammo, catat"Ammo: " + ammo, lalu kembalikantaken. - Di
AmmoCrate.cs, saatother.TryGetComponent(out Blaster blaster), panggilblaster.AddAmmo(amount);danDestroy(gameObject);.
Tekan tombol “Main” dan berjalanlah ke kanan: Console menampilkan Ammo: 7, lalu Ammo: 10. Kemudian tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class AmmoCrate : MonoBehaviour
{
public int amount = 3;
void OnTriggerEnter(Collider other)
{
// Blaster milik pemain mengambil amunisi, lalu petinya menghilang
}
}
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine PertamamuPerulangan dalam CoroutineMenghentikan CoroutineRangkuman: Hitung Mundur10Proyek: Kabur dari Arena
ArenaPara Pemburu2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa HancurLatihan sendiri: Playground Unity