Buku “Unity in action. Pengembangan lintas platform dalam C #. Int 2. edisi »

gambar Hai, habrozhiteli! Edisi kedua Unity in Action telah dirancang ulang sepenuhnya untuk memperkenalkan Anda pada pendekatan dan ide baru yang membantu Anda memanfaatkan Unity secara maksimal untuk pengembangan game. Lebih banyak perhatian diberikan pada desain game dua dimensi, konsep dasar yang dapat digunakan pembaca untuk berlatih dan membangun platformer dua dimensi yang kompleks. Buku ini dapat dengan aman disebut pengantar Unity for programmer profesional. Joseph Hawking memberi orang-orang dengan pengalaman pengembangan semua informasi yang diperlukan untuk membantu mereka dengan cepat mempelajari alat baru dan mulai membuat game baru. Dan yang terbaik adalah belajar dari proyek tertentu dan tugas-tugas praktis.

Unity sering disajikan sebagai satu set komponen yang tidak memerlukan pemrograman, yang pada dasarnya salah. Untuk membuat game yang sukses, banyak yang dibutuhkan: pekerjaan seniman yang sangat baik, keterampilan pemrograman, cerita yang menarik, gameplay yang menarik, kerja yang ramah dan terkoordinasi dari tim pengembangan. Dan kita tidak boleh lupa tentang visualisasi sempurna dan pekerjaan berkualitas tinggi di semua platform - dari konsol game ke ponsel. Unity menggabungkan mesin yang kuat, peluang pemrograman profesional dan desainer kreatif, memungkinkan Anda untuk mewujudkan proyek yang paling luar biasa dan ambisius.
Kuasai Unity dan mulailah membuat game Anda sendiri dengan lebih cepat!

Struktur buku


Bab 1 memperkenalkan Unity, lingkungan pengembangan game lintas platform. Anda akan mempelajari sistem komponen dasar yang mendasari Unity, dan juga belajar cara menulis dan menjalankan skrip dasar.

Dalam Bab 2, kita akan beralih ke menulis program yang menunjukkan gerakan dalam ruang tiga dimensi, secara simultan memeriksa topik-topik seperti input mouse dan keyboard. Penentuan posisi objek dalam ruang tiga dimensi dan operasi rotasi mereka dijelaskan secara rinci.

Pada Bab 3, kita akan mengubah program demo menjadi penembak orang pertama dengan mendemonstrasikan metode pemancar sinar dan dasar-dasar kecerdasan buatan. Emisi sinar (kami membuat garis di tempat kejadian dan melihat apa yang bersinggungan dengannya) diperlukan di semua versi game.

Bab 4 dikhususkan untuk mengimpor dan membuat sumber daya game. Ini adalah satu-satunya bab dalam buku di mana kode tidak memainkan peran sentral, karena setiap proyek memerlukan model dan tekstur (dasar).

Bab 5 mengajarkan Anda cara membuat game dua dimensi di Unity. Meskipun alat ini awalnya dimaksudkan hanya untuk membuat grafik tiga dimensi, sekarang ini sangat mendukung grafis dua dimensi.

Bab 6 melanjutkan penjelasan tentang prinsip-prinsip membuat game dua dimensi menggunakan contoh platformer. Secara khusus, kami menerapkan kontrol, mensimulasikan lingkungan fisik dan animasi untuk karakter.

Bab 7 memperkenalkan fungsionalitas GUI terbaru di Unity. Antarmuka pengguna diperlukan untuk semua game, dan versi terbaru dari Unity membanggakan sistem pembuatan antarmuka pengguna yang ditingkatkan.

Dalam bab 8 kita akan membuat program lain yang menunjukkan gerakan dalam ruang tiga dimensi, tapi kali ini dari sudut pandang pengamat luar. Penerapan kontrol pihak ketiga akan memberi Anda gambaran tentang operasi matematika utama dalam ruang tiga dimensi, selain itu, Anda akan belajar cara bekerja dengan karakter animasi.

Bab 9 menunjukkan bagaimana menerapkan perangkat dan elemen interaktif dalam game. Pemain akan memiliki sejumlah cara untuk menggunakan perangkat ini, termasuk dengan menyentuh langsung, menyentuh pemicu di dalam permainan, atau dengan menekan tombol controller.

Bab 10 mengajarkan interaksi dengan World Wide Web. Anda akan belajar cara mengirim dan menerima data menggunakan teknologi standar seperti permintaan HTTP untuk menerima data XML dari server.

Dalam bab 11, Anda akan belajar cara menambahkan suara ke gim. Di Unity, baik efek suara pendek dan fonogram musik yang panjang sangat didukung; kedua opsi suara sangat penting untuk hampir semua gim video.

Dalam bab 12 kita akan menyatukan fragmen dari berbagai bab untuk mendapatkan satu game pada akhirnya. Selain itu, Anda akan belajar cara memprogram kontrol yang dimanipulasi dengan mouse dan menyimpan permainan.

Tentang penulis


Joseph Hawking tinggal di Chicago dan mengembangkan perangkat lunak untuk lingkungan interaktif. Ia bekerja untuk Solusi InContext. Edisi pertama buku ini ditulis selama waktunya di Synapse Games. Dia juga mengajar pengembangan game di University of Illinois, di Chicago Institute of the Arts, dan di Columbia College. Situs webnya adalah www.newarteest.com .

Kutipan. 6.4.2. Dorong ke atas


Mari kita ajarkan karakter untuk melompat. Untuk melakukan ini, ketika Anda menekan tombol Jump, karakter harus ditekan ke atas. Kecepatan gerakan horizontal diedit langsung dalam kode, dan dengan gerakan vertikal kita akan bertindak secara berbeda agar tidak mengganggu aksi gravitasi. Faktanya adalah bahwa beberapa kekuatan dapat memengaruhi suatu objek pada saat yang bersamaan, jadi kami menambahkan gaya ke atas padanya. Rekatkan kode ini ke skrip gerak.

gambar

Perhatikan perintah AddForce (). Rising force ditambahkan ke komponen Rigidbody dalam mode berdenyut; Impuls adalah dorongan yang tiba-tiba, tidak seperti kekuatan yang terus bekerja. Dalam kode tersebut, goncangan seperti itu terjadi setelah menekan bilah spasi. Pada saat yang sama, gravitasi terus beraksi pada karakter, yang karenanya, setelah melompat, ia menggambarkan busur yang indah.

Tapi, mungkin, Anda telah memperhatikan satu kelemahan, penghapusan yang sedang kita kerjakan sekarang.

6.4.3. Pengenalan permukaan


Kontrol lompatan memiliki satu kelemahan kecil: kemampuan untuk melompat dalam penerbangan (ketika karakter sudah melompat atau ketika jatuh). Menekan bilah spasi bahkan dalam kasus ini akan memberikan dorongan, meskipun ini tidak dapat dilakukan. Kontrol lompat seharusnya hanya berfungsi untuk karakter yang berdiri di platform. Jadi, Anda perlu belajar bagaimana menentukan apakah karakter ada di permukaan.

gambar

gambar


Kode ini merampas karakter kemampuan untuk melompat di udara. Ia memeriksa apakah ada collider di bawah karakter, dan memperhitungkan hasil cek dalam kondisi untuk melompat. Pertama-tama, batas-batas tabrakan primitif dari karakter kita ditentukan, dan kemudian tumpang tindih colliders dicari di area dengan lebar yang sama langsung di bawah kaki karakter. Hasil pemeriksaan disimpan dalam variabel ground dan digunakan dalam pernyataan bersyarat.

6.5. Fitur platforming tambahan


Jadi, kami menemukan nuansa implementasi gerakan, berjalan dan melompat dari karakter. Kami akan melengkapi demo game kami dengan fitur lingkungan baru.

MERANCANG TINGKAT DENGAN TILEMAP_ ______
Dalam kerangka proyek, lantai dan platform dibuat dari persegi panjang putih kosong. Versi terakhir gim ini membutuhkan grafik yang lebih rumit, tetapi kemungkinan besar komputer tidak akan dapat memproses gambar seukuran keseluruhan level. Paling sering masalah ini diselesaikan menggunakan alat tilemap. Ini memungkinkan Anda untuk mendesain gambar berdasarkan prinsip kisi. Ini tampilannya.

gambar

Harap dicatat: peta seluruhnya terdiri dari sel-sel kecil. Inilah yang memungkinkan Anda untuk menutupi seluruh layar dengan gambar tanpa menggunakan gambar yang terlalu besar.

Alat tilemap resmi telah ditambahkan ke versi terbaru dari aplikasi Unity. Anda juga dapat menggunakan perpustakaan eksternal, misalnya Tiled2Unity, sistem yang mengimpor peta yang dibuat di editor Tiled yang populer (dan gratis).

6.5.1. Platform miring dan satu sisi


Sekarang di gim kami hanya ada lantai biasa dan satu blok tempat Anda bisa melompat. Tetapi ada opsi platform lainnya. Kami akan menggunakannya untuk mendiversifikasi pemandangan. Mari kita mulai dengan bagian miring. Buat salinan objek Lantai, beri nama Lereng, masukkan nilai 0, 0, -25 dalam bidang transformasi rotasi dan pindahkan ke kiri, tetapkan nilai –3,47, –1,27, 0 ke koordinat transformasi transformasi.

Mulai mainkan adegan itu. Dalam proses gerakan, karakter dengan benar meluncur ke atas dan ke bawah. Tetapi karena gravitasi, ia mulai meluncur ke bawah dan dalam keadaan statis. Untuk mengatasi masalah ini, Anda harus menonaktifkan simulasi gravitasi dalam kasus ketika karakter (a) ada di platform, (b) sedang diam. Untungnya, kami telah mengajarinya untuk mengenali permukaan dan dapat menggunakan ini dalam potongan kode baru. Anda hanya perlu menambahkan satu baris.

gambar

Setelah mengedit kode gerak, karakter mulai berperilaku benar pada permukaan miring. Sekarang tambahkan apa yang disebut platform satu arah. Karakter tidak hanya bisa berdiri di atasnya, tetapi juga melompati itu. Ketika Anda mencoba untuk melompat melalui platform biasa, karakter akan memukul kepalanya tentang hal itu.

Platform satu sisi sering ditemukan dalam game, sehingga Unity memiliki sarana untuk mengimplementasikannya. Jika Anda ingat, sebelumnya ketika menambahkan komponen Platform Effector, kami menghapus centang pada kotak Use One Way. Dan sekarang kita membutuhkannya! Sekali lagi, buat salinan objek Lantai, beri nama Platform, masukkan nilai 10, 1, 1 di bidang untuk skala dan tempatkan objek yang dihasilkan di atas lantai, tentukan koordinat -1,68, 0,11, 0 untuk itu. Dan pastikan untuk memilih kotak centang Gunakan One Way di bagian Platform Effector 2D.

Karakter akan dapat terbang melalui platform saat melompat, tetapi itu akan mencegah gerakan ke bawah. Hanya satu kekurangan yang perlu ditangani. Diilustrasikan dalam gambar. 6.11. Di Unity, platform sprite dapat ditampilkan di atas karakter (untuk membuatnya lebih mudah dilihat, atur variabel jumpForce ke 7. Anda dapat mengedit koordinat Z karakter seperti pada bab sebelumnya, tetapi kali ini kami akan melakukannya secara berbeda. Komponen yang bertanggung jawab untuk rendering sprite, ada semacam urutan yang menentukan sprite mana yang akan ditampilkan di atas. Pilih objek Player dan atur parameter Order in Layer di bagian Sprite Renderer menjadi 1.

gambar

Sekarang dalam adegan ada fragmen miring dari lantai dan platform searah. Tetapi ada opsi lain yang tidak biasa, yang diterapkan sedikit lebih keras daripada platform yang sudah Anda ketahui. Mari kita lihat bagaimana ini dilakukan.

6.5.2. Platform bergerak


Versi ketiga dari gender yang tidak biasa, umum dalam game platform, adalah platform bergerak. Untuk menambahkan platform seperti itu ke permainan kami, Anda harus, pertama, untuk menulis skrip baru yang mengontrol gerakannya, dan kedua, untuk mengedit skrip untuk pergerakan karakter. Dalam skenario baru, platform akan bergerak di antara dua titik: mulai dan berakhir. Buat skrip C # yang disebut MovingPlatform dan tambahkan kode berikut ke dalamnya.

gambar

gambar

MENGGAMBAR KUSTOM GIZMOS _________________________________________
Sebagian besar kode yang tertulis dalam proses membaca program buku apa yang terjadi dalam permainan. Tetapi skrip Unity memungkinkan Anda untuk memengaruhi editor bawaan. Banyak yang tidak tahu bahwa Anda dapat menambahkan menu dan jendela tambahan ke Unity. Selain itu, dengan bantuan mereka, objek tambahan dibuat pada tab Scene, yang disebut wadah dimensional (gizmos).

Anda telah menemukan wadah curah. Ingat paralelepipeds hijau yang menunjuk colliders? Mereka dibangun ke dalam Unity, tetapi tidak ada yang mengganggu Anda untuk menulis skrip untuk keseluruhan wadah Anda sendiri. Misalnya, pada tab Adegan, buat garis yang sesuai dengan lintasan platform. Itu ditunjukkan pada gambar.

gambar

Kode menggambar garis seperti itu sangat sederhana. Di bagian atas kode yang memengaruhi antarmuka Unity, tambahkan baris menggunakan UnityEditor; (karena sebagian besar fungsi editor ada di namespace khusus ini), tetapi ini tidak diperlukan dalam kasus ini. Cukup tambahkan metode ini ke skrip MovingPlatform Anda:

... void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawLine(transform.position, finishPos); } ... 

Tentang kode ini, penting untuk memahami yang berikut ini. Pertama, semua tindakan dilakukan di dalam metode OnDrawGizmos (). Ini adalah nama sistem, seperti nama-nama metode Mulai dan Perbarui. Kedua, kami menambahkan dua baris kode ke metode ini: yang pertama menetapkan warna garis, dan yang kedua memaksa Unity untuk menggambar garis dari tempat platform berada ke titik target.

Seret skrip ini ke platform. Mulai mainkan adegan itu, dan Anda akan melihat bahwa sekarang platform bergerak dari sisi ke sisi! Tetap mengedit skrip yang mengontrol gerakan karakter untuk mengaitkannya dengan platform bergerak. Buat perubahan berikut.

gambar

Sekarang karakter yang melompat ke platform akan bergerak bersamanya. Bahkan, itu semua bermuara untuk mengubah karakter menjadi anak dari platform. Saya harap Anda ingat bahwa setelah pembentukan hubungan hierarkis, anak mulai bergerak mengikuti orangtua. Metode GetComponent () dalam Listing 6.7 memeriksa untuk melihat apakah permukaan yang dikenali adalah platform yang bergerak. Dalam hal hasil tes positif, ia menjadi leluhur karakter; jika tidak, karakter terputus dari leluhur mana pun.

Tapi ada satu masalah. Karakter mewarisi dari platform dan transformasi penskalaan, yang memengaruhi ukurannya. Situasi dapat dikoreksi oleh transformasi terbalik (pengurangan skala karakter, mengimbangi peningkatan ukuran yang dipicu oleh platform).

gambar

gambar

Secara matematis, kompensasi penskalaan terlihat sangat sederhana: pemain ditugaskan 1 dibagi dengan skala platform. Dan ketika sedikit kemudian skala pemain dikalikan dengan skala platform, hasilnya adalah 1. Satu-satunya saat yang sulit dalam hal ini adalah memperhitungkan tanda yang menentukan arah gerakan; mungkin Anda ingat bahwa tergantung padanya, karakter berubah dari sisi ke sisi.

Jadi, kami telah menambahkan platform bergerak ke game. Ada satu sentuhan terakhir yang tersisa, dan versi demo akan sepenuhnya siap ...

»Informasi lebih lanjut tentang buku ini dapat ditemukan di situs web penerbit
» Isi
» Kutipan

Kupon diskon 20% untuk penjaja - Unity

PS: 7% dari biaya buku akan masuk ke terjemahan buku komputer baru, daftar buku yang diserahkan ke percetakan ada di sini .

Source: https://habr.com/ru/post/id440292/


All Articles