Cara Membuat Game Platform Kesatuan Dasar

Di bagian 1 dari Cara Membuat Game Platform Kesatuan Dasar, kami melakukan langkah-langkah untuk membuat karakter dasar Anda, menambahkan fisika, platform, dan masukan mouse. Di bagian selanjutnya, kita akan membahas cara menambahkan platform prosedural, menu permainan, dan beberapa sumber daya untuk menemukan model dan plug-in Unity tambahan yang dapat Anda gunakan di proyek mendatang.

Membuat Platform Prosedural

Jadi pada bagian pertama dari tutorial ini, kami hanya membuat platform dasar agar karakter Anda dapat bangkit ( dan jatuh ke kehancuran) - tetapi untuk platformer sejati, kami perlu menambahkan platform tambahan. Namun kami tidak ingin menambahkan satu juta platform - kami ingin Unity secara otomatis membuat platform saat karakter kami terpental.

Untuk ini, kita membutuhkan template platform - atau dikenal sebagai prefab. Prefab adalah kependekan dari prefabrikasi, dan itu hanya berarti pra-dibuat - biasanya salinan objek permainan yang dapat Anda gunakan berulang-ulang. Bahkan, Rak itan dapat berisi hierarki objek permainan, yang artinya Anda dapat menyusun seluruh adegan objek permainan.

Jadi yang perlu Anda lakukan adalah membuat folder aset baru bernama Prefabs, lalu seret dan lepas platform kami dari panel Hirarki ke folder baru ini. Sampah akan dapat dikenali di panel Hirarki dengan warna biru.

Sekarang untuk menginstruksikan Unity untuk membuat platform prosedural, kita perlu membuat skrip yang disebut GameManager, dan melampirkannya ke kamera. Skrip GameManager pada dasarnya berisi instruksi penting bagi mesin untuk meneruskan ke permainan - dalam hal ini, itu akan menghasilkan platform ketika karakter kita melompat.

Alasan kami memasangnya ke kamera adalah karena kamera tidak pernah hancur, dan tetap konstan - sehingga skripnya tidak pernah hancur dan tetap konstan dengan melekat padanya.

Inilah yang perlu dimasukkan dalam skrip:

Untuk menjelaskan kode ini sedikit, penting bagi kami untuk membuat referensi ke panel prefab dan sphere (karakter kami), jadi Anda perlu menyeret dan menjatuhkannya ke dalam slot khusus mereka di editor Anda.

Kode ini juga mengandung tiga variabel privat - garis yang dimulai dengan var pribadi. Ini akan memberi contoh (referensi) panel prefab dengan cara-cara berikut:

  • Batas var pribadi: float menempatkan batas pada sumbu y, jadi ketika karakter kita melompat lebih tinggi dari batas ini, panel baru akan dibuat.
  • Rotasi var pribadi: Quaternion; hanya menambahkan rotasi yang diperlukan untuk instantiate prefab kami - namun, kami menambahkan rotasi = Quaternion.identify; karena ini menginstruksikan mesin untuk tidak memutar objek gim. Objek (panel prefab kami) benar-benar akan sejajar dengan dunia.
  • Variabel swasta terakhir terakhirPlatformPosition akan mengingat dan menyimpan posisi platform terakhir sebagai vektor 3D (pada dasarnya, platform tidak akan hilang di belakang Anda, sehingga Anda dapat mundur melalui dunia permainan jika Anda mau).

Dalam skrip selanjutnya ini, kita akan menambahkan tanda centang untuk setiap frame apakah bola kita (karakter) berada di atas batas (yang menghasilkan platform baru) - jika karakter kita berada di atas batas, kita akan menaikkan batas batasi untuk membuat panel / platform baru yang lebih tinggi dari yang terakhir.

Langkah selanjutnya adalah menambahkan kode yang menentukan posisi panel berikutnya:

Kami menggunakan do while dalam kode ini untuk memastikan bahwa nilai X dan Z vektor (posisinya di dunia game) tidak identik dengan platform sebelumnya - sehingga platform kami yang dihasilkan secara prosedural akan selalu bertambah tinggi.

Tentu saja, kami tidak ingin nilai-nilai ini ditempatkan secara ketat - sedikit keacakan adalah hal yang baik, jika tidak kami hanya membuat tangga yang sempurna. Jadi kami menggunakan fungsi Random.Range, antara nilai -1 dan 2, untuk memanggil nilai acak untuk X dan Z. Anda dapat bermain dengan angka-angka ini sedikit jika Anda ingin bermain-main.

Membuat Menu Game

Sejauh ini, kami telah membuat gim di mana Anda dapat melompat dengan ketinggian yang meningkat dan menggerakkan mouse di sekitar untuk mengontrol arah. Masalahnya adalah jika Anda jatuh dari platform, Anda akan jatuh tanpa henti - kita perlu membuat skrip dalam menu kematian / game untuk memulai kembali.

Jadi pada dasarnya, kita akan menulis skrip yang memeriksa apakah bola (karakter) kita jatuh di bawah platform pertama permainan . Jika demikian, skrip akan memuat adegan baru.

Langkah pertama kami adalah memeriksa apakah bola telah jatuh di bawah ambang tertentu. Masuklah ke skrip GameManager yang kita buat sebelumnya dan lihat pernyataan if dari fungsi pembaruan .

Kita akan menggunakan pernyataan lain jika di sini, untuk memeriksa apakah posisi bola kita berada di bawah -2, 0 unit dari posisi-Y - jika ya, permainan fungsi pribadi kita akan lebih baik, bahwa sedikit skrip sudah cukup jelas.

Bagian terakhir dari skrip itu adalah fungsi yang digunakan untuk menangani game over state dan memuat menu game kami.

TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini

Ini mengingatkan kita pada kelas Aplikasi Unity - kita dapat memanggil fungsi LoadLevel untuk memunculkan adegan baru, yang dalam hal ini, hanyalah menu game kita - ingat bahwa pada dasarnya semua yang ada dalam Unity adalah level. Menu utama (Start Game - Options - Credits - Dll) pada dasarnya hanya level / adegan dengan sedikit teks yang dapat diklik. Jenis seperti layar pemuatan Skyrim, ya? Mereka hanya model 3D di ruang dunia kosong dengan bilah pemuatan.

Dalam hal apapun, kita perlu membuat adegan melalui File> New Scene, dan berikan nama Menu saat menyimpannya. Kemudian kita akan menambahkan kedua adegan ke proses pembuatan. Ini dilakukan melalui File> Pengaturan Build .

Adegan menu kami harus tetap terbuka, jadi cukup klik tombol Add Current dan tambahkan adegan ke Pengaturan Build Anda - lakukan ini lagi dengan adegan level.

Ketika kita mati dalam gim, skrip yang kita buat harus mengalihkan kita dari level gim ke adegan menu.

Tambahkan Tombol Mulai untuk Pemain

Sekarang, kami dapat memainkan game dalam mode uji coba, tetapi mulai sekarang, pemain tidak memiliki cara untuk memulai gim jika kami mengunggah game ini di suatu tempat. Jadi kita perlu membuat menu game yang memiliki tombol untuk memulai permainan.

Jadi beralih ke adegan menu game, dan tambahkan sedikit ini ke kamera ( di panel Inspektur, ingat dari pt. 1 dari tutorial ini?).

  • Bendera Hapus: Warna Solid
  • Latar: # 000
  • Lebar: 200
  • Tinggi: 60

Ini akan memberi kita latar belakang hitam yang kuat untuk menu permainan kami - ini dilakukan dalam nilai-nilai RGB, bukan hex - begitu biru akan menjadi 001, hijau adalah 010, merah adalah 100, dll. Saya bisa menjelaskan ini untuk Anda, tetapi semua yang Anda butuhkan yang harus dilakukan adalah Google RGB picker jika Anda menginginkan warna tertentu.

Teruskan, kita perlu menambahkan tombol untuk memulai game. Ini dilakukan melalui elemen UI - pada dasarnya, kita dapat menambahkan elemen UI dengan cara yang sama seperti kita menambahkan elemen 3D, melalui panel Hierarki . Jadi lanjutkan dan buat tombol UI, dan Anda akan melihat beberapa elemen baru di panel Hierarki :

  • EventSystem
  • Kanvas
  • Tombol
  • Teks

Untuk memecah ini - kanvas adalah wadah kami untuk semua elemen UI, dan kami dapat membuatnya responsif ( dengan responsif maksud saya skala ukuran layar, tidak responsif seperti itu akan menjawab pertanyaan yang Anda tanyakan. Itu sebaiknya diserahkan kepada skrip AI). Dalam hal apapun, kita akan mengubah posisi tombol ke ini:

  • Transformasi Rusak {Pos X: 0, Pos Y: 0, Pos Z: 0}
  • Transformasi Rusak {Lebar: 200, Tinggi: 60}

Agar sedikit lebih elegan, Anda dapat menghapus gambar sumber tombol, dan menetapkan warna untuknya. Dan untuk mengubah teks tombol, cukup edit elemen Text ke sesuatu seperti START GAME, dan berikan ukuran font sekitar 16.

Untuk membuat tombol dapat diklik, kami akan menambahkan fungsi ke skrip UIController di elemen Button . Cukup tambahkan sedikit kode di bawah ini:

Terapkan fungsi ini ke pengaturan Inspektur tombol, dan dalam pengaturan komponen Tombol (Skrip), kami hanya akan menambahkan fungsi yang dijalankan ketika pemain mengklik tombol Start kami. Jadi tambahkan saja fungsi ke acara On Click (), dan drag / drop tombol Start Game ke field input. Akhirnya, pilih fungsi yang baru dibuat dari skrip UIController ( UIController.StartGame)

Kita dapat menerapkan fungsi ini dalam pengaturan Inspektur tombol. Dalam pengaturan komponen Tombol (Script), kita dapat menjalankan fungsi setiap kali seorang pemain mengkliknya. Untuk ini, kita menambahkan fungsi baru ke acara Klik Pada (), dengan mengklik ikon + . Sekarang kita dapat drag dan drop tombol itu sendiri ke kolom input. Kemudian kita pilih fungsi yang baru kita tulis dari skrip UIController (UIController.StartGame).

Cara Mengekspor / Memublikasikan sebagai Game Browser WebGL

Buka pengaturan build, dan pilih WebGL sebagai platform target Anda. Sekarang klik tombol Switch Platform, dan akhirnya, klik tombol Build dan berikan judul game Anda. Setelah dibuat, ia akan diekspor / disimpan sebagai file .HTML, yang dapat dibuka / dilihat di browser yang mendukung WebGL. Meskipun jika Anda ingin mempublikasikan game Anda, ada dua metode untuk mencapai ini:

  • Unggah gim Anda ke semacam host file (Dropbox, Google Drive, dll), lalu bagikan tautannya. Ini berguna untuk demo kecil yang ingin Anda tunjukkan kepada teman-teman, atau calon klien ( situs web portal game yang akan membeli game Anda atau menyiapkan pendapatan iklan bersama Anda).
  • Unggah permainan Anda ke server FTP yang Anda miliki, dan tanamkan ke dalam