Unduh aplikasi unity 3d untuk android. Menggunakan Unity untuk mengembangkan aplikasi. Cara membuat game di Unity

Mengembangkan game untuk perangkat OS Android memerlukan pendekatan yang mirip dengan pengembangan untuk iOS. Di sisi lain, perangkat keras perangkat Android tidak tunduk pada standar yang jelas, yang membuatnya perlu untuk menyelesaikan masalah yang tidak ada saat bekerja dengan iOS. Ada juga perbedaan antara Unity versi Android dan iOS.

Mempersiapkan Lingkungan Pengembangan Android

Sebelum Anda dapat menguji game Anda di perangkat, Anda perlu mempersiapkan lingkungan pengembangan Anda. Secara khusus, unduh dan instal Android SDK dari platform yang diinginkan dan tambahkan perangkat Anda ke sistem (proses ini berbeda untuk Windows dan Mac). Ini ditulis secara rinci di situs web pengembang Android, dan informasi tambahan mungkin diberikan oleh produsen perangkat Anda. Karena ini adalah proses yang agak rumit, kami telah menyiapkan instruksi kecil yang akan membantu Anda mempersiapkan semua yang Anda butuhkan untuk pengembangan. Jika Anda memerlukan informasi lebih lanjut, Anda bisa mendapatkannya dari Portal Pengembang Android.

Akses ke fitur Android

Unity menyediakan API untuk mengakses masukan dan pengaturan Android. Kelas yang tersedia didokumentasikan di halaman Code for Android Assemblies.

Menghubungkan kode C, C++ atau Java ke skrip

Unity memungkinkan Anda untuk memanggil fungsi yang ditulis dalam C/C++ langsung dari skrip (fungsi Java dapat dipanggil secara tidak langsung). Untuk mempelajari cara mengakses fungsi dari kode asli dari Unity, kunjungi halaman pembuatan plugin Android.

Occlusion Culling (menggunting geometri tak terlihat)

Unity menyediakan dukungan untuk pemusnahan oklusi, yang sangat berguna saat mengoptimalkan platform seluler. Informasi lebih lanjut dapat ditemukan di halaman pemusnahan Oklusi.

Menyesuaikan layar mulai

Layar splash yang ditampilkan saat permainan dimulai dapat disesuaikan - lihat halaman ini untuk informasi lebih lanjut.

Pemecahan Masalah dan Pelaporan Kesalahan

Ada banyak alasan mengapa aplikasi Anda mogok atau tidak berfungsi dengan baik. Panduan kami untuk memecahkan masalah khusus Android akan membantu Anda mengatasi penyebab kesalahan dalam waktu sesingkat mungkin. Jika, setelah membaca manual, Anda menganggap bahwa masalahnya ada di Unity, Anda harus mengajukan laporan bug. Lihat halaman ini untuk petunjuk.

Bagaimana Unity untuk Android berbeda dari versi desktop

JavaScript dengan pengetikan yang kuat

Untuk meningkatkan kinerja di Unity versi Android, pengetikan dinamis dalam JavaScript selalu dinonaktifkan (seolah-olah #pragma ketat diterapkan secara otomatis ke setiap skrip). Ini penting untuk diingat jika Anda mem-porting proyek ke Android dari platform lama, dan jika Anda menemukan kesalahan kompilasi, masalahnya harus dicari terlebih dahulu dalam pengetikan. Kesalahan seperti itu biasanya mudah ditangani dengan memastikan bahwa jenis semua variabel secara eksplisit ditentukan atau dilemparkan selama inisialisasi.

Meskipun Unity Android mendukung tekstur DXT/PVRTC/ATC, Unity akan mendekompresi tekstur ke format RGB(A) pada waktu proses jika metode kompresi ini tidak didukung pada perangkat tertentu. Ini dapat sangat memengaruhi kinerja rendering GPU, jadi disarankan untuk menggunakan format ETC. Ini adalah standar de facto untuk Android dan harus didukung oleh semua perangkat modern. Di sisi lain, ETC tidak mendukung saluran alfa, dan terkadang tekstur RGBA 16-bit akan menjadi pilihan terbaik dalam hal kualitas, ukuran, dan kecepatan rendering di mana saluran alfa diperlukan.

Posting Dilihat: 19 374

Kami berbicara tentang bagaimana Anda dapat membuat game Anda sendiri di Android menggunakan Unreal Engine. Pada artikel ini, kita akan melihat mesin pengembangan game lain yang sama populernya - persatuan.

Unity adalah engine yang sangat terkenal di kalangan developer indie. Faktanya, ini adalah mesin lintas platform yang memungkinkan Anda untuk mengembangkan 3D- dan 2D-permainan. Fitur yang membedakan Unity dari mesin lain adalah ambang masuk yang rendah untuk pemula, sementara memiliki toolkit yang kaya untuk para profesional. Cross-platform memungkinkan Anda mengembangkan aplikasi untuk platform apa pun, mulai dari game desktop hingga game seluler.

Secara terpisah, perlu disebutkan sistem berlangganan, karena Unity bukanlah produk yang sepenuhnya gratis. Ada beberapa jenis langganan:

  • Pribadi. Versi gratis yang berisi semua fitur utama mesin. Ini memiliki batasan sebagai berikut: pendapatan per tahun atau jumlah dana yang dikumpulkan tidak boleh melebihi 100000$ .
  • Plus. Per $35 per bulan berbagai laporan dan analitik disediakan, serta kemampuan untuk mengubah layar splash, 20% -diskon ke-th untuk pembelian di Toko Aset dan berbagai manfaat kecil. Ini memiliki batasan sebagai berikut: pendapatan untuk tahun ini atau jumlah dana yang dikumpulkan tidak boleh melebihi 200000$ .
  • Pro. Per $125 per bulan mencakup semua manfaat dari versi Plus dan tambahan layanan profesional dan dukungan premium. Tidak ada batasan omset atau jumlah dana.
  • Versi terpisah untuk bisnis (digunakan oleh perusahaan besar).

Jadi, pengembang indie dengan anggaran kecil harus puas dengan versinya Pribadi atau Plus jika tidak, Anda harus berlangganan Pro. Pada artikel ini, kita akan menggunakan versi gratis untuk lari pertama.

Langkah 1Instal Unity

Untuk mulai menginstal Unity, Anda harus pergi ke situs Unity Store, di mana Anda akan diminta untuk memilih jenis langganan. Seperti disebutkan di atas, kami memilih Pribadi.

Anda kemudian akan diminta untuk menerima persyaratan penggunaan dan mengunduh penginstal. Anda juga dapat memeriksa Persyaratan sistem untuk bekerja dengan Persatuan.

Setelah meluncurkan penginstal, Anda akan diminta untuk memilih komponen mana yang akan diinstal. Karena kita perlu membuat aplikasi Android, kita akan mencentang kotak untuk Dukungan Pembuatan Android. Juga, jika diinginkan, alih-alih dengan Unity, Anda dapat menginstal Komunitas Visual Studio 2017 untuk pemrograman aktif C#.

Setelah itu, yang tersisa hanyalah memilih jalur instalasi dan mulai menginstal Unity.

Langkah 2: Mendaftar dan Menyiapkan Unity

Setelah menyelesaikan instalasi dan menjalankan Unity, kami diminta untuk masuk dengan akun kami.

Kemudian lagi Anda akan diminta untuk memilih langganan, kami juga akan fokus pada Pribadi. Dalam hal ini, Anda perlu mengonfirmasi bahwa pendapatan tahunan perusahaan kurang dari $100.000, atau Unity digunakan untuk tujuan pelatihan.

Pada akhirnya, diusulkan untuk mengambil survei kecil di mana Anda perlu menjawab apa yang Anda lakukan dan untuk tujuan apa Anda menginstal Unity.

Langkah 3. Buat proyek baru

Setelah mengonfigurasi Unity, kita masuk ke layar untuk memilih / membuat proyek. Klik disini Baru untuk membuat Anda proyek baru.

Setelah itu, di jendela yang muncul, Anda diminta untuk memasukkan nama proyek dan direktori di mana ia akan ditempatkan. Juga jangan lupa centang kotak 3D untuk menggunakan editor dalam mode 3D.

Setelah selesai dengan ini, klik Buat proyek untuk membuat proyek. Setelah itu, jendela editor akan terbuka dengan adegan yang sudah dibuat sebelumnya.

Kami belum akan berurusan dengan seluk-beluk pemrograman dan mengambil contoh permainan selesai. Untuk ini ada Toko Aset, yang berisi sejumlah besar model siap pakai, animasi, suara (dan bahkan game), baik berbayar maupun gratis.

Untuk membuka Toko Aset, Anda perlu di menu Jendela memilih Toko Aset(kombinasi tombol ctrl-9).

Jendela toko akan terbuka. Masukkan di bilah pencarian " contoh permainan gaya burung flappy" dan buka contoh gratis yang akan kami gunakan dalam proyek kami.

Mengklik Unduh dan dengan demikian setelah mengunduhnya, Anda kemudian dapat mengimpornya ke dalam proyek Anda. Untuk melakukannya, klik Impor, setelah itu akan muncul peringatan bahwa pengaturan proyek akan diubah setelah diimpor.

Setelah setuju untuk mengimpor, Anda akan melihat jendela di mana Anda harus memilih komponen mana yang akan diimpor. Pilih semua dan klik Impor.

Setelah impor selesai, Anda akan melihat file baru di Browser Proyek. Ini adalah file game. Untuk membuka adegan di editor, perluas Gaya Flappy Bird - adegan dan klik dua kali pada Utama.

Akibatnya, adegan permainan akan muncul di jendela editor 3D.

Anda dapat memeriksa cara kerja game langsung di Unity dengan mengklik tombol bermain di atas jendela editor.

Langkah 4 Konfigurasi Alat Android

Catatan: jika Anda menggunakan studio android, maka Anda sudah menginstal semuanya komponen yang diperlukan sehingga Anda dapat melanjutkan ke langkah berikutnya dengan aman.

Untuk merakit game yang dihasilkan di Android, Anda perlu menginstal alat-alat berikut:

  • Java Development Kit (JDK). Anda dapat mengunduhnya dari situs web Java. Dengan mengklik tautan, Anda akan melihat di bagian paling atas Platform Java (JDK), klik Unduh di sebelah tulisan, lalu pilih sistem operasi Anda dan mulai unduh. Setelah itu ikuti saja petunjuk dari installernya.
  • Android SDK. oleh sebagian besar secara sederhana untuk menginstal versi terbaru adalah dengan mengunduh Android Studio yang disertakan dengan SDK ini. Untuk melakukan ini, buka situs web Android Studio dan klik Unduh Android Studio. Pemasang Android Studio memasang komponen inti Android SDK yang diperlukan untuk pengembangan Android.

Langkah 5. Siapkan proyek untuk diluncurkan

Pertama, Anda perlu mengubah platform pengembangan ke Android. Untuk melakukan ini, di Unity, buka menu File dan pilih Build Settings.

Di jendela yang muncul, pilih Android lalu tekan beralih platform.

Sakelar platform memberi tahu kita bahwa kita akan membangun aplikasi Android. Artinya saat kita membangun aplikasi, Unity akan membuat berkas APK. Peralihan platform juga memaksa Unity untuk mengimpor kembali semua aset dalam proyek. Ini tidak akan memakan waktu lama pada proyek kecil, tetapi perlu diingat bahwa operasi ini dapat memakan waktu lama pada proyek besar.

Sekarang kita perlu memberikan nama paket untuk aplikasi.

Catatan: Nama paket adalah pengidentifikasi unik untuk aplikasi dan ditulis dalam gaya DNS terbalik dalam format com.NamaPerusahaan.NamaProduk. Setelah aplikasi dipublikasikan di Google Play, nama paket tidak dapat diubah lagi.

Untuk melakukan ini, buka menu Sunting dan pilih Pengaturan Proyek - Pemutar.

Di sisi kanan Unity, sebuah jendela akan terbuka dengan banyak pengaturan berbeda, seperti versi aplikasi, target dan SDK minimum, pemilihan ikon, dll. Di sini kita perlu di blok Pengaturan lainnya Temukan Identifikasi dan atur nama paket di bidang nama paket. Anda juga dapat mengubah pengaturan lain jika diinginkan.

Sekarang tinggal menentukan jalur ke Android SDK dan JDK. Untuk melakukan ini, buka menu dan pilih Edit-Preferensi.

Di jendela yang muncul, buka Alat Eksternal dan di ladang SDK dan JDK tentukan jalur yang sesuai, lalu tutup jendela.

Langkah 6: Membangun dan Menjalankan Aplikasi

Saatnya membuat aplikasi Unity pertama Anda. Untuk melakukan ini, pilih dari menu File - Pengaturan Bangun. Sebuah jendela akan terbuka, di mana Anda perlu menambahkan adegan yang ingin Anda kumpulkan. Karena kami sudah membuka adegan ini di editor, cukup klik Tambahkan Adegan Terbuka untuk menambahkannya ke rakitan, setelah menambahkannya Anda akan melihatnya di daftar adegan.

Tetap hanya untuk menekan Membangun, setelah itu Unity akan mulai membangun aplikasi. Sebelum itu, Anda mungkin diminta untuk memilih folder tempat file aplikasi yang dikumpulkan akan disimpan, serta nama file APK.

Catatan: saat ini, jika Anda menginstal versi alfa di Android SDK Bangun-Alat(Versi: kapan 28.0.0-rc1), saat membangun Gradle akan memberikan kesalahan. Untuk memperbaikinya, cukup hapus versi ini dari Android SDK.

Akibatnya, file APK yang dibangun akan muncul di folder yang Anda tentukan, siap untuk diinstal pada emulator atau pada perangkat nyata.

Mari kita lihat apa yang ada di dalam APK yang dibuat. Untuk melakukan ini, kami menggunakan utilitas Penganalisis APK, yang disertakan dengan Android Studio,

Ukuran file APK yang tidak terkompresi adalah 21.1MB, dalam keadaan terkompresi 20.9MB. Seperti yang Anda lihat dari grafik, sebagian besar volume ditempati oleh perpustakaan pihak ketiga yang ditambahkan oleh Unity. Kemudian di aktiva semua sumber daya yang digunakan dalam adegan yang dirakit berada. Mengajukan class.dex hanya berisi 89 kelas dan 479 metode.

Apalagi, jika Anda melihat AndroidManifest.xml, aplikasi terdiri dari satu aktivitas.

Kesimpulan

Itu saja. Dalam artikel ini, kami mempelajari cara memasang dan mengonfigurasi Unity, dan juga membuat aplikasi Android pertama kami.

Unity adalah mesin di mana sebagian besar permainan modern pada platform yang berbeda. Melalui engine sangat memungkinkan untuk membuat game yang berorientasi untuk dijalankan di komputer (Windows, Linux, MacOS), ponsel, komputer tablet (Android, iOS) dan bahkan konsol permainan PlayStation, Xbox, Nintendo.

Bagaimana cara membuat game di Unity?

Unity didasarkan pada konsep yang berorientasi pada komponen. Faktanya, permainan apa pun terdiri dari sekumpulan objek yang diencerkan dengan komponen tambahan. Misalnya, selama pembuatan platformer, kami membuat GameObject, menambahkan komponen grafis ke dalamnya, yang bertanggung jawab untuk menampilkan karakter, dan komponen kontrol, ia menyediakan kontrol karakter menggunakan mouse, keyboard, joystick, atau layar sentuh. Mesin tidak memberlakukan batasan pada jumlah modul tersebut. Kita dapat menambahkan sebanyak mungkin komponen ke GameObject sesuai kebutuhan. Semua pekerjaan pada mesin didasarkan pada pembuatan GameObject dan penerapan komponen yang sesuai untuknya.

Pemula mungkin disesatkan oleh kesederhanaan proses yang tampak, meskipun tidak demikian. Untuk membuat game yang unik dan populer, Anda harus menulis banyak komponen dari awal. Lebih khusus lagi, di lingkungan Unity, ini disebut skrip. Bahasa skrip asli adalah C#, tetapi JavaScript dan Boo (versi Python yang dipotong) juga digunakan sebagian. Membuat komponen sendiri tidaklah mudah, bahkan bisa dikatakan prosedur yang rumit, terkait langsung dengan pemrograman klasik. Tanpa tingkat pengetahuan yang cukup dalam pemrograman, itu akan sulit.

Platform yang Didukung

Banyak proyek besar lebih memilih Unity karena daftar besar platform yang kompatibel dengan mesin. Aplikasi yang sudah selesai dapat diluncurkan di sistem operasi komputer apa pun, platform seluler populer, dan SmartTV. Apa yang bisa kami katakan, bahkan game browser dan aplikasi untuk platform tertentu ( seperti Tizen OS) sebagian besar dikembangkan di Unity.

Namun, tidak semuanya begitu mulus di sini. Jika perlu, Anda dapat menulis algoritme tertentu berdasarkan kode tingkat rendah, untuk Android yang sama Anda harus memiliki pengetahuan Java yang menyeluruh.

Hal yang sama berlaku untuk iOS. Fitur lain dari iOS adalah dimungkinkan untuk mengembangkannya hanya dari komputer atau tablet dari Apple. Dengan tidak adanya Macbook atau perangkat serupa, rilis game akan dengan cepat terhenti dan Unity tidak ada hubungannya dengan itu, Apple sendiri memberlakukan batasan serupa. Kesimpulannya sederhana: jika ada pengembangan iOS dalam rencana, Anda harus memilih perangkat yang sesuai untuk perakitan terlebih dahulu.

Bagaimana dan di mana mengembangkan game di mesin?

Kami dapat melakukan proses pengembangan game yang panjang baik di dalam Windows dan Mac OS X. Sudah ada versi editor untuk Linux, tetapi sejauh ini kami tidak dapat mengandalkan operasi stabil mereka. Pengembang menghabiskan sebagian besar waktu untuk membuat game di dalam editor Unity. Kami masih memiliki banyak waktu untuk menulis kode skrip, kami dapat membuatnya di MonoDevelop standar atau di editor pihak ketiga mana pun. Sekarang mereka secara aktif menggunakan Visual Studio, serta Sublime Text, tetapi hanya dengan konfigurasi yang tepat.

Perkembangan aplikasi seluler adalah salah satu pekerjaan yang paling menguntungkan di industri komputer. Membuat game Android membutuhkan biaya ratusan atau ribuan dolar, dan keuntungannya bisa mencapai satu juta dolar. Dalam hal ini, banyak orang tertarik untuk mengembangkan aplikasi untuk telepon. Pada artikel ini, Anda akan belajar cara membuat game Android dari awal menggunakan komputer, mesin dan desainer mana yang lebih baik untuk dipilih.

Tidak ada permainan yang sukses tidak dapat dilakukan tanpa grafik yang indah, jadi pembuatan desain adalah salah satu tahap pengembangan yang paling penting. Desain pada OS Android diimplementasikan menggunakan “design document” atau dokumen desain. Anda harus mulai membuat mainan dengan mempelajarinya secara mendetail. Berkasnya berisi:

  1. Model objek;
  2. Spesifikasi fungsional;
  3. konten permainan;
  4. Antarmuka.

Mari kita pertimbangkan masing-masing poin secara lebih rinci.

Model objek

Ini adalah informasi tentang fungsionalitas setiap item. Model objek bertanggung jawab atas kemampuan untuk membeli dan menjual item, serta meningkatkan karakteristik permainan karakter.

Spesifikasi fungsional

Ini menggambarkan gameplay, fitur utama dari setiap karakter. Ini juga menjelaskan fitur-fiturnya item permainan- senjata, kotak P3K, baju besi, dan lainnya. Pada dasarnya, spesifikasi fungsional adalah aturan yang proses permainan. Semakin baik bagian ini dikerjakan, semakin mudah untuk membuat game Android berkualitas tinggi.

Konten permainan

Ini adalah isi teks dari permainan. Ini menggambarkan dialog karakter dan senjata apa yang dapat digunakan untuk menangani kerusakan, berapa banyak kesehatan yang akan diambil, karakteristik apa yang akan meningkat ketika menggunakan berbagai peralatan. Ini juga mengandung Detil Deskripsi setiap item.

Antarmuka

Antarmuka adalah bagaimana pengguna akan berinteraksi dengan game. Ini termasuk tombol yang dapat digunakan untuk mengontrol karakter, dan bagian menu: misalnya, bermain, skor, pengaturan, pemain top, bantuan. Jika Anda tidak memiliki pengalaman dalam membuat aplikasi Android, sebelum membuat aplikasi Anda sendiri, unduh dari Play Market dan analisis permainan populer dan mentransfer solusi terbaik untuk proyek Anda.

Mesin permainan

Inti dari game apa pun adalah mesinnya. dia perangkat lunak, memungkinkan Anda untuk mengembangkan dan menjalankannya. Ini berisi berbagai macam program, termasuk mesin rendering, mesin fisika, suara, animasi, dan banyak lagi. Untuk memudahkan proses penulisan program, pengembang pihak ketiga membuat mesin game sendiri khusus untuk aplikasi Android.

Masing-masing menawarkan fitur yang berbeda: beberapa dirancang untuk 3D, yang lain untuk 2D, multi-platform dapat didukung. Ada sejumlah besar mesin seperti itu, tetapi jika Anda seorang pemula, lebih baik memilih salah satu yang paling populer, karena semua fungsi yang diperlukan akan ada di sana.

UDK

Torsi 2d/3d

Apa itu desainer game?

Konstruktor adalah program yang menggabungkan mesin permainan dan lingkungan pengembangan terintegrasi. Konstruktor membuat proses pengembangan dapat diakses oleh orang-orang yang tidak memiliki keterampilan pemrograman. Beberapa desainer memungkinkan Anda membuat game dari genre tertentu, yang lain memiliki fungsionalitas maksimum, tetapi membutuhkan lebih banyak uang. Bagi seorang pembuat aplikasi seluler pemula, pilihan seorang desainer adalah salah satu momen paling penting, karena nasib aplikasi masa depan akan tergantung pada kemampuannya.

Konstruktor memungkinkan Anda membuat game dari berbagai genre untuk Windows, Android, dan iOS. Penawaran pilihan besar lokasi, objek, karakter, dan desain suara yang sudah jadi, sehingga pembuatan game Android pertama tidak akan memakan banyak waktu. Pengguna yang akrab dengan bahasa pemrograman JS dan C++ dapat menggunakan GML yang disematkan. Satu-satunya kelemahan adalah bahwa program ini tidak diterjemahkan ke dalam bahasa Rusia.

Kesimpulan

Membuat game Android bukanlah bisnis yang mudah, tetapi sangat menguntungkan. Jika Anda memutuskan untuk mengembangkan permainan dan menghasilkan uang darinya, pertama-tama pikirkan idenya. Selanjutnya, tulis “dokumen desain” dan tentukan mesin game yang dapat memaksimalkan potensinya. Setelah itu, Anda dapat melanjutkan langsung ke pembuatan aplikasi di konstruktor.

Video

Untuk mempelajari lebih lanjut tentang proses pembuatan game Android, lihat serangkaian video yang didedikasikan untuk aktivitas ini.

Cara cepat menulis game Android dengan Unity

Saat ini, siapa pun dapat menjadi pengembang game atau aplikasi seluler yang sukses tanpa melakukan upaya besar. Contoh kasusnya adalah Dong Nguyen, yang mengembangkan Flappy Bird. Gim ini tidak memiliki mekanika atau grafik yang rumit, tetapi ini tidak mencegahnya menjadi populer dan menghasilkan lima puluh ribu dolar per hari bagi penciptanya. Namun, tidak ada yang luar biasa dari permainan tersebut. Yang diperlukan untuk menjadi sukses adalah berada di tempat yang tepat pada waktu yang tepat dan sedikit keberuntungan. Hal serupa bisa terjadi hari ini, Anda hanya perlu ide yang tepat.

Untuk menunjukkan betapa mudahnya menulis sesuatu seperti ini, hari ini kita akan menulis Flappy Bird kita sendiri menggunakan Unity hanya dalam 10 menit.

karakter permainan

Pertama buat proyek baru dan pastikan opsi 2D dipilih.

Muat sprite burung Anda ke tempat kejadian. Jangan lupa nyalakan imajinasimu!

Kemudian sesuaikan ukuran sprite sesuai keinginan Anda dengan menyeretnya di sudut ke arah yang Anda inginkan. Sprite harus terlihat di jendela hierarki di sebelah kiri. Semua objek dalam pemandangan terlihat di dalamnya, dan saat ini seharusnya hanya ada dua di antaranya: kamera dan burung.

Seret kamera ke burung dan lepaskan. Kamera harus berada di bawah burung, yang berarti bahwa kamera sekarang adalah "anak" burung. Sekarang posisi kamera akan diperbaiki relatif terhadap burung. Jika burung bergerak maju, maka kamera melakukan hal yang sama.

Pilih burung lagi di tempat kejadian atau di jendela hierarki. Anda akan melihat daftar opsi dan atribut di sebelah kanan dalam jendela bernama Inspector . Di sini Anda dapat mengelola berbagai variabel yang terikat pada objek tertentu.

Sekarang klik Tambah Komponen. Pilih Physics2D > Rigidbody2D - ini dia siap pakai instruksi untuk menerapkan gravitasi pada karakter kita. Klik pada Constraints di panel ini dan kemudian pilih freeze rotation Z . Ini akan mencegah burung berputar-putar dengan kamera.

Dengan cara yang sama, tambahkan Polygon Collider yang memberi tahu Unity di mana batas karakter berada. Tekan Mainkan dan lihat bagaimana sprite, bersama dengan kamera, jatuh tanpa henti.

Sejauh ini semuanya berjalan dengan baik!

Sekarang saatnya untuk mulai menerbangkan karakter, karena itu tidak akan sulit.

Pertama, Anda perlu membuat skrip C#. Buat folder untuk itu (klik kanan di suatu tempat di aset dan buat folder "Scripts"), klik kanan dan pilih Create > C# Script .

Sebut saja "Karakter". Klik dua kali untuk membukanya di IDE Anda, baik itu MonoDevelop atau Visual Studio. Kemudian tambahkan kode berikut:

Karakter kelas publik: MonoBehaviour ( public Rigidbody2D rb; public float moveSpeed; public float flapHeight; // Ini untuk inisialisasi void Start () ( rb = GetComponent(); ) // Update dipanggil sekali per frame void Update () ( rb .velocity = new Vector2(moveSpeed, rb.velocity.y); if (Input.GetMouseButtonDown(0)) ( rb.velocity = new Vector2(rb.velocity.x, flapHeight); ) if (transform.position.y > 18 || transformasi.posisi.y< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Kode ini melakukan dua hal. Itu membuat karakter bergerak maju dengan kecepatan yang kami tentukan di inspektur dan memberi kesan seekor burung sedang terbang. Metode Update() dipanggil berulang kali sepanjang permainan, jadi apa pun yang Anda masukkan di sini akan terus berjalan. Dalam hal ini, kami menambahkan beberapa kecepatan ke objek kami. Variabel rb adalah skrip RigidBody2D yang kita terapkan pada objek kita sebelumnya, jadi ketika kita menulis rb.velocity kita mengacu pada kecepatan objek.

Ketukan di layar ditafsirkan oleh Unity sebagai klik mouse jika Anda menggunakan perangkat seluler. Setelah menekan, kami memaksa karakter untuk naik sedikit.

Variabel moveSpeed ​​​​akan bertanggung jawab atas kecepatan gerakan, dan variabel flapHeight - untuk meningkatkan ketinggian penerbangan burung setelah setiap klik. Karena variabel ini bersifat publik , kita dapat mengubahnya di luar skrip.

Metode Death() juga dideklarasikan public , yang berarti bahwa objek dan skrip lain dapat memanggilnya. Metode ini hanya mengembalikan posisi karakter ke awal. Ini juga akan digunakan setiap kali karakter terbang terlalu tinggi atau rendah. Anda akan segera mengerti mengapa itu dinyatakan sebagai publik. Garis rb.velocity = Vector3.zero; diperlukan untuk menghilangkan momentum - kita tidak ingin karakter jatuh lebih cepat dan lebih cepat setelah setiap kematian, bukan?

Sekarang Anda dapat keluar dari IDE dan menambahkan skrip sebagai komponen ke karakter. Untuk melakukan ini, pilih burung kita dan klik Add Component > Scripts > Character . Sekarang kita dapat mendefinisikan moveSpeed ​​​​dan flapHeight di inspektur (untuk itulah variabel publik). Menetapkan nilai variabel 3 dan 5, masing-masing.

Dan satu hal lagi: di inspektur, Anda perlu menambahkan tag ke karakter. Untuk melakukan ini, klik di mana dikatakan Tag: Untagged lalu pilih Player dari daftar dropdown.

Hambatan

Sekarang mari tambahkan rintangan: pipa. Seseorang menemukan jamur di dalam pipa, dan seseorang menemukan kematiannya sendiri.

Seret sprite pipa ke dalam adegan ke tempat yang Anda inginkan sebagai penghalang pertama dan beri nama pipe_up .
Sekarang mari kita buat skrip baru bernama Pipe:

Pipa kelas publik: MonoBehaviour ( karakter Karakter pribadi; // Diperlukan untuk inisialisasi void Start () ( character = FindObjectOfType(); ) // Update dipanggil sekali per frame void Update () ( if (character.transform.position.x - transform.position.x >

Tambahkan skrip ini ke sprite pipa dengan cara yang sama seperti sebelumnya. Dengan demikian, pipa akan kembali ke layar setelah meninggalkan batas kirinya. Kami belum melakukan apa pun di sini, tetapi kami akan kembali ke sana.

Metode OnCollisionEnter2D() dipanggil setiap kali pipa berinteraksi dengan karakter. Setelah itu, metode Death() yang dibuat sebelumnya dipanggil, mengembalikan pemain ke titik awal.

Jadi, kami memiliki satu pipa yang akan menghilang dari waktu ke waktu dan muncul kembali di ujung layar yang lain. Pukul dia, kamu mati.

pipa terbalik

Saat ini kami hanya memiliki satu sprite pipa. Mari kita tambahkan satu lagi. Untuk melakukannya, klik kanan di jendela hierarki, klik Objek 2D Baru > Sprite, lalu pilih sprite yang ingin Anda gunakan. Bahkan lebih mudah untuk hanya menyeret file ke dalam adegan lagi.

Beri nama sprite ini pipe_down . Di Inspektur, di bawah Sprite Renderer, pilih opsi Flip Y untuk membalik pipa secara terbalik. Tambahkan RigidBody2D yang sama.

Sekarang mari kita menulis skrip C# baru bernama PipeD . Ini akan memiliki kode serupa:

Kelas publik PipeD: MonoBehaviour ( karakter Karakter pribadi; //Ini diperlukan untuk inisialisasi void Start() ( character = FindObjectOfType(); ) // Update dipanggil sekali per frame void Update() ( if (character.transform.position. x - transform.position.x > 30) ( ) ) void OnCollisionEnter2D(Collision2D other) ( if (other.gameObject.tag == "Player") ( character.Death(); ) ) )

Prefab

Jadi, kode ini sudah cukup bagi kita untuk membuat keseluruhan game. Kita dapat memindahkan pipa ke sisi kanan layar setiap kali menghilang, atau menyalin dan menempelkan pipa sebanyak yang kita inginkan sepanjang permainan.

Jika Anda menggunakan cara pertama, maka pastikan bahwa pipa-pipa itu benar setelah pembuatan acak, dan akan sulit untuk mempertahankan hal-hal yang adil. Setelah kematian karakter, mereka bisa muncul beberapa kilometer dari pipa pertama!

Jika Anda menggunakan cara kedua, maka semuanya akan berakhir dengan konsumsi memori yang berlebihan, dengan perlambatan yang dihasilkan dalam permainan, dan nilai replay terbatas, karena. semuanya tetap di tempat yang sama setiap saat.

Sebagai gantinya, mari kita gunakan cetakan. Secara sederhana, kita akan mengubah pipa kita menjadi template yang kemudian dapat kita gunakan untuk membuat lebih banyak pipa secara efektif sesuai keinginan. Jika ada programmer di sini, maka pertimbangkan skrip Pipe sebagai kelas, dan pipa sebagai instance dari objek ini.

Untuk melakukan ini, buat folder "Prefab" baru. Kemudian seret pipe_up dan pipe_down dari jendela hierarki ke folder.

Setiap kali Anda menyeret objek dari folder ini ke dalam adegan, itu akan memiliki properti yang sama, jadi Anda tidak perlu terus menambahkan komponen. Terlebih lagi, jika Anda mengubah ukuran komponen dalam folder, itu akan mempengaruhi semua pipa dalam permainan, dan Anda tidak perlu mengubah ukuran masing-masing satu per satu.

Seperti yang dapat Anda bayangkan, ini akan sangat menghemat sumber daya kami. Ini juga berarti bahwa kita dapat berinteraksi dengan objek dari kode. Kita bisa membuat instance pipa kita.

Pertama, tambahkan kode ini ke ekspresi kondisional dalam metode Update() dari skrip Pipa yang kami biarkan kosong:

Void Update () ( if (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); Instansiasi (gameObject, Vector2 baru(character.transform.position.x + 15 + xRan, -10 + yRan), transform.rotation); Hancurkan(gameObject); ) )

Ini diperlukan untuk membuat instance dari gameObject kita. Hasilnya adalah salinan identik baru. Di Unity, setiap kali Anda menggunakan kata gameObject , itu merujuk ke objek yang saat ini terikat dengan skrip - dalam kasus kami, pipa.

Kami membuat ulang pipa kami dalam variasi acak untuk membuatnya lebih menyenangkan.

Namun alih-alih melakukan semua hal yang sama dalam skrip PipeD, kami membuat kedua objek di tempat yang sama. Dengan demikian, kita dapat dengan mudah mengatur posisi pipa kedua relatif terhadap yang pertama. Ini juga berarti kita membutuhkan lebih sedikit kode untuk PipeD .

Buat gameObject publik bernama pipeDown . Kemudian perbarui kode seperti ini:

If (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); float gapRan = Random.Range (0, 3); Instantiate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -11 + yRan), transform.rotation); Instantiate(pipeDown, new Vector2(character.transform.position.x + 15 + xRan, 12 + gapRan + yRan), transform.rotation); Hancurkan(gameObject); )

Kembali ke Unity dan tarik prefab pipe_down dari folder prefabs (ini penting!) ke tempat di mana dikatakan "Pipe Down" (perhatikan bagaimana camel case kita diganti dengan spasi) ke sprite pipe pipe up . Jika Anda ingat, kami mendefinisikan Pipe Down sebagai gameObject publik, yang memberi kami kemampuan untuk menentukan objek ini dari mana saja - dalam hal ini melalui inspektur. Dengan memilih prefab untuk objek ini, kami memastikan bahwa ketika pipa dipakai, itu akan menyertakan semua atribut dan skrip yang kami tambahkan sebelumnya. Kami tidak hanya membuat sprite, tetapi kami membuat ulang objek dengan Collider yang dapat membunuh karakter.

Semua yang akan kita tambahkan di tempat yang sama dalam skrip PipeD hanyalah Destroy(gameObject) , sehingga pipa akan hancur sendiri ketika keluar dari sisi kiri layar.

Jika Anda memulai permainan sekarang, layar akan maju secara otomatis dan Anda akan mati jika Anda menekan salah satu pipa. Terbang cukup jauh dan pipa-pipa itu akan menghilang dan muncul kembali di depan.

Sayangnya, ada jarak yang jauh antara pipa dan layar terlihat kosong. Kami dapat memperbaikinya dengan menambahkan beberapa cetakan ke adegan kami untuk membuat pipa pipa yang terus-menerus bertelur. Namun, akan lebih baik untuk menghasilkan pipa dalam skrip. Ini penting, karena jika tidak, setelah kematian karakter, pipa di awal jalan akan dihancurkan, dan ruang kosong akan terbentuk lagi.

Dengan cara ini, kita dapat membuat beberapa pipa pertama selama setiap pemuatan game dan mengembalikan semuanya ke tempatnya setelah kematian karakter.

Penerbangan tanpa akhir

Sekarang mari kita buat variabel publik pipe_up dan pipe_down dalam skrip Karakter. Ini akan memberi Anda kemampuan untuk mereferensikan objek yang dibuat dengan menyeret prefab ke objek karakter, seperti saat kita menambahkan pipe_down ke skrip Pipe.

Kita perlu menambahkan variabel ini:

Pipe_up GameObject Publik; pipe_down GameObject publik;

Kemudian kita akan menulis metode seperti ini:

Public void BuildLevel() ( Instantiate(pipe_down, new Vector3(14, 12), transform.rotation); Instantiate(pipe_up, new Vector3(14, -11), transform.rotation); Instantiate(pipe_down, new Vector3(26, 14), transform.rotation); Instantiate(pipe_up, new Vector3(26, -10), transform.rotation); Instantiate(pipe_down, new Vector3(38, 10), transform.rotation); Instantiate(pipe_up, new Vector3( 38, -14), transform.rotation); Instantiate(pipe_down, new Vector3(50, 16), transform.rotation); Instantiate(pipe_up, new Vector3(50, -8), transform.rotation); Instantiate(pipe_down, new Vector3(61, 11), transform.rotation); Instantiate(pipe_up, new Vector3(61, -13), transform.rotation); )

Kami akan memanggilnya sekali dalam metode Update() dan sekali dalam metode Death().

Setelah permainan dimulai, Update() dipanggil, dan pipa kita ditempatkan sesuai dengan konfigurasi yang diberikan. Karena itu, beberapa rintangan pertama akan selalu berada di tempat yang sama. Setelah kematian pemain, pipa akan kembali ke tempat yang sama.

Kembali ke adegan di Unity dan hapus dua pipa yang sekarang ada di sana. "Permainan" Anda hanya akan terlihat seperti layar kosong dengan seekor burung. Tekan Mainkan dan pipa akan muncul, setelah beberapa yang pertama, posisinya akan ditentukan secara acak.

Akhirnya

Itulah yang kami lakukan seluruh permainan! Tambahkan penghitung skor, cobalah membuatnya lebih orisinal dan tingkatkan kesulitan permainan saat Anda maju. Juga, tidak akan berlebihan untuk membuat menu. Ide bagus lainnya adalah menghancurkan pipa di layar setelah kematian karakter. Setelah Anda selesai melakukannya - anggap itu siap untuk dirilis di toko bermain permainan di saku Anda! Dahulu kala permainan serupa membuat pengembang lain sangat kaya, yang membuktikan bahwa Anda tidak harus menjadi jenius pemrograman atau memiliki penerbit kaya di belakang Anda untuk menjadi sukses. Anda hanya perlu ide bagus dan sepuluh menit!

Ingin menulis aplikasi Android tetapi tidak tahu harus mulai dari mana? Kemudian lihat tutorial hebat kami untuk mempelajari pengembangan Android.



 
Artikel pada tema:
Semua yang perlu Anda ketahui tentang kartu memori SD agar Anda tidak bingung saat membeli Connect sd
(4 peringkat) Jika Anda tidak memiliki cukup penyimpanan internal pada perangkat Anda, Anda dapat menggunakan kartu SD sebagai penyimpanan internal untuk ponsel Android Anda. Fitur ini, yang disebut Adoptable Storage, memungkinkan OS Android untuk memformat media eksternal
Cara memutar roda di GTA Online dan lainnya di FAQ GTA Online
Mengapa gta online tidak konek? Sederhana saja, server mati sementara/tidak aktif atau tidak bekerja. Pergi ke yang lain Cara menonaktifkan game online di browser. Bagaimana cara menonaktifkan peluncuran aplikasi Online Update Clinet di manajer Connect? ... di skkoko aku tahu kapan kamu keberatan
Ace of Spades dalam kombinasi dengan kartu lain
Interpretasi kartu yang paling umum adalah: janji kenalan yang menyenangkan, kegembiraan yang tak terduga, emosi dan sensasi yang sebelumnya tidak pernah dialami, menerima hadiah, kunjungan ke pasangan yang sudah menikah. As hati, arti kartu saat mencirikan orang tertentu Anda
Cara membuat horoskop relokasi dengan benar Buat peta berdasarkan tanggal lahir dengan decoding
Bagan kelahiran berbicara tentang kualitas dan kemampuan bawaan pemiliknya, bagan lokal berbicara tentang keadaan lokal yang diprakarsai oleh tempat tindakan. Mereka sama pentingnya, karena kehidupan banyak orang meninggal dunia dari tempat kelahirannya. Ikuti peta lokal