Pengumpulan Koin 2D dalam Persatuan
Pengambilan dan pengumpulan koin telah menjadi hal pokok dalam game 2D, terutama di Platformer 2D.
Untuk mengambil koin di Unity kita perlu membuat skrip yang akan dilampirkan ke objek coin dan akan hancur setelah pemain bersentuhan dengannya, memperbarui nilai penghitung.
Saya akan menggunakan Pengontrol Karakter 2D, tetapi Anda dapat melewati bagian ini jika Anda sudah memiliki pengontrol 2D.
Langkah
Untuk membuat koin 2D yang bisa diambil dan dikumpulkan, ikuti langkah-langkah di bawah ini:
- Buat GameObject baru (GameObject -> Buat Kosong) dan beri nama "Coin"
- Lampirkan komponen SpriteRenderer ke objek "Coin"
- Tetapkan sprite koin Anda ke SpriteRenderer (Anda dapat menggunakan gambar di bawah, pastikan Jenis Tekstur di Pengaturan Impor diatur ke 'Sprite (2D and UI)')
- Skalakan objek Koin hingga ukuran yang diinginkan
- Ubah posisi sumbu Koin 'Z' agar sesuai dengan posisi pemain
- Lampirkan komponen BoxCollider2D ke objek "Coin"
- Buat skrip baru, beri nama "SC_2DCoin", hapus semuanya lalu tempelkan kode di bawah ini ke dalamnya:
SC_2DCoin.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SC_2DCoin : MonoBehaviour
{
//Keep track of total picked coins (Since the value is static, it can be accessed at "SC_2DCoin.totalCoins" from any script)
public static int totalCoins = 0;
void Awake()
{
//Make Collider2D as trigger
GetComponent<Collider2D>().isTrigger = true;
}
void OnTriggerEnter2D(Collider2D c2d)
{
//Destroy the coin if Object tagged Player comes in contact with it
if (c2d.CompareTag("Player"))
{
//Add coin to counter
totalCoins++;
//Test: Print total number of coins
Debug.Log("You currently have " + SC_2DCoin.totalCoins + " Coins.");
//Destroy coin
Destroy(gameObject);
}
}
}
- Lampirkan skrip SC_2DCoin ke objek "Coin"
- Pilih objek pemain Anda dan pastikan tagnya disetel ke "Player" (ini diperlukan agar dapat mengambil koin)
Koin sekarang sudah siap, Anda dapat menyimpannya ke Prefab dan menduplikasinya di sekitar level.
Untuk membuat penghitung koin, ikuti langkah-langkah di bawah ini:
- Buat Gambar UI baru dengan mengklik kanan pada tampilan Hierarki -> UI -> Gambar dan beri nama "CoinIcon"
- Tetapkan sprite koin ke komponen Gambar
- Ubah RectTransform Alignment menjadi 'top left', Pivot menjadi (0, 1), Posting X menjadi '5', Pos Y menjadi '-5', Lebar dan Tinggi menjadi '25'
- Buat Teks baru dengan mengklik kanan pada tampilan Hierarki -> UI -> Teks dan beri nama "CoinCounter"
- Atur "CoinCounter" RectTransform sama dengan "CoinIcon", hanya saja atur Pos X menjadi '35' dan Lebar menjadi '160'
- Atur Gaya Font Teks ke 'Bold', Ukuran Font ke 22, Perataan ke 'left center' dan Warna ke 'white'
- Buat skrip baru, beri nama "SC_CoinCounter", hapus semuanya lalu tempelkan kode di bawah ini ke dalamnya:
Skrip penghitung koin akan menerapkan jumlah koin ke elemen Teks.
SC_CoinCounter.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SC_CoinCounter : MonoBehaviour
{
Text counterText;
// Start is called before the first frame update
void Start()
{
counterText = GetComponent<Text>();
}
// Update is called once per frame
void Update()
{
//Set the current number of coins to display
if(counterText.text != SC_2DCoin.totalCoins.ToString())
{
counterText.text = SC_2DCoin.totalCoins.ToString();
}
}
}
- Lampirkan skrip SC_CoinCounter ke objek Teks "CoinCounter"
Tekan Mainkan dan lihat koin menghilang pada kontak pemain dan ditambahkan ke penghitung.