Bagaimana Membuat App Android Menggunakan Perpaduan

Sebelum saya mula, saya mungkin akan menyebut bahawa ini akan menjadi tutorial yang agak panjang. Jadi bersiaplah. Pada akhir tutorial ini, anda akan dapat mengambil dunia (dalam arti kiasan.)

Kira-kira 2 tahun yang lalu, saya melangkah ke wilayah baru dan mengambil kursus dalam Reka Bentuk Permainan. Saya tidak pernah cuba membuat permainan dengan betul sebelum ini. Saya telah cuba masuk ke pengaturcaraan, tetapi saya tidak boleh melakukannya. Saya menulis mungkin beberapa program arahan yang sangat asas yang beberapa baris panjang dan kemudian hanya menyerah kerana saya tidak dapat mengepala saya.

Jadi apabila saya sebenarnya memulakan kursus saya, saya pastinya tidak digunakan. Selama dua tahun, saya banyak belajar dan membuat kemajuan yang sangat baik dan juga direka dan diprogramkan beberapa permainan dan aplikasi, 2 di antaranya adalah untuk Android.

Melangkah lebih terperinci. Memandangkan ini kursus, saya dikehendaki mempelajari segala-galanya yang berkaitan dengan reka bentuk dan pembangunan permainan. Saya belajar bagaimana untuk menghasilkan idea-idea permainan, cara menulis cerita untuk permainan, cara mengonsepkan watak-watak (saya sebenarnya tidak merancang apa-apa watak), bagaimana membuat dokumen reka bentuk permainan (yang sangat berguna, ia tidak mempunyai menjadi sangat terperinci jika anda pemaju indie), bagaimana menggunakan Unity Game Engine untuk benar-benar membuat permainan, bagaimana untuk menguji permainan dengan betul dan bagaimana untuk membina permainan untuk platform yang berbeza.

Langkah 1: Jadual Kandungan

  1. Isi kandungan
  2. Perkara yang Anda Perlu Tahu Sebelum Anda Mulakan
  3. Cara Menyediakan Perpaduan & Studio Android
  4. Menyediakan Projek & Mencipta Prefabs Partikel
  5. Membuat & Menambah Skrip Kesan
  6. Membuat & Menambah Kawalan Sentuh
  7. Ujian
  8. Mencipta Menu Utama & HUD
  9. Menyusun Hierarki
  10. Kesimpulannya

Langkah 2: Perkara yang Anda Perlu Tahu Sebelum Anda Mulakan

Ramai orang mungkin mempunyai salah tanggapan bahawa reka bentuk / pembangunan permainan sangat sukar dan memerlukan banyak pengetahuan terdahulu untuk benar-benar membuat satu. Walau bagaimanapun, ini jauh dari kebenaran. Menggunakan enjin permainan secara drastik akan mengurangkan keluk pembelajaran dan akan membolehkan anda memberi tumpuan lebih kepada membuat permainan menyeronokkan. Terdapat pelbagai enjin permainan yang berbeza di luar sana, pilihan yang paling popular adalah:

  • Perpaduan
  • Enjin Unreal
  • CryEngine

Unity dan Unreal Engine lebih popular daripada CryEngine. Ini kerana mereka ditujukan kepada pemaju Indie bersama-sama dengan pemaju AAA, berbanding dengan CryEngine, yang hanya bertujuan untuk pemaju AAA. Perbezaan antara Indie dan AAA:

Hindia terdiri daripada pasukan kecil, biasanya 1-20 orang dan mereka tidak mempunyai jumlah dana yang besar.

Beberapa contoh Indie menyusun:

  • Coffee Stain Studios
  • Halfbrick Studios
  • Mojang
  • Penciptaan Ndmeic

AAA terdiri daripada pasukan yang lebih besar dan mempunyai banyak pengalaman dalam industri serta banyak dana. Beberapa contoh:

  • EA
  • Ubisoft
  • Gameloft
  • Treyarch
  • Activision

Enjin permainan adalah satu program yang direka untuk membuat reka bentuk permainan / pembangunan lebih mudah. Daripada perlu kod setiap aspek permainan anda sendiri, anda hanya dapat skrip tingkah laku menggunakan enjin permainan. Ini dimungkinkan oleh hakikat bahawa enjin permainan melakukan banyak kerja untuk anda, perkara-perkara seperti fizik, pencahayaan, rendering dll semuanya dilakukan untuk anda. Apa yang perlu anda lakukan ialah membuat objek permainan (ini hanya bekas dengan unsur-unsur yang berlainan), menetapkan susunan dan susun atur, tetapkan sifat yang berkaitan dengan objek permainan dan skrip tingkah laku.

Sesetengah enjin permainan sebenarnya membolehkan anda membuat permainan keseluruhan tanpa sebarang pengekodan yang diperlukan sama sekali, yang paling popular adalah Enjin Unreal. Ia mempunyai sistem Blueprints, yang menggunakan struktur berasaskan nod (yang pada asasnya adalah sistem yang menggunakan kotak dan anak panah. Kotak dan anak panah ini dikaitkan jika mereka adalah sebahagian daripada fungsi yang sama). Katakan anda mahu memintas input papan kekunci (ini hanya bermakna memberitahu program untuk mencari kunci yang sedang ditekan pada papan kekunci) dan kemudian membuat pemain bergerak selagi kunci khusus itu diturunkan. Anda akan membuat nod asas, yang akan mengandungi sub-fungsi yang diperlukan. Dalam node asas ini, anda akan mengisytiharkan kunci yang anda mahu gunakan, kemudian buat nod lain yang memberitahu permainan apa yang perlu dilakukan. Node asas akan menjadi kotak yang mengandungi fungsi untuk menekan kekunci.

Dalam kes ini, nod kedua akan menyebabkan pemain bergerak ke arah (ke hadapan, sebagai contoh) selagi kunci "W" dimatikan. Nod kedua akan menjadi kotak lain yang dikaitkan dengan kotak pertama. Ini sangat berguna, bukan hanya untuk pereka tetapi juga untuk pengaturcara kerana ia membolehkan mereka untuk mencipta prototaip dengan pantas. Perpaduan juga mempunyai ciri ini, yang dikenali sebagai skrip visual. Walau bagaimanapun, ia mengambil bentuk aset yang anda mesti beli.

Perpaduan sebenarnya lebih baik untuk pemula yang ingin membuat permainan kerana ia mengajar anda cara skrip. Enjin Unreal jauh lebih maju, walaupun ia mempunyai skrip visual. Yang bermaksud terdapat lengkung pembelajaran yang lebih besar.

Langkah 3: Cara Menyediakan Perpaduan & Studio Android

Jadi sekarang anda tahu sedikit lebih mengenai enjin permainan dan bagaimana ia berfungsi. Tutorial ini akan menggunakan Unity 5.3.5 yang merupakan versi terkini pada masa ini. Saya akan mengajar anda bagaimana untuk mewujudkan aplikasi Android estetika yang menyenangkan. Tutorial ini menganggap bahawa anda mempunyai kefahaman asas menggunakan Perpaduan. Jika anda seorang pemula yang lengkap dan anda ingin mengikuti tutorial ini, sila lawati pautan ini untuk mengetahui asas-asas Persatuan: //pixelnest.io/tutorials/2d-game-unity/

Pastikan anda sentiasa mempunyai versi Perpaduan terkini kerana ia mengandungi perbaikan dan pembaikan pepijat. Sekiranya anda mempunyai versi Perpaduan yang lebih lama, anda mungkin berpeluang masuk ke kesilapan. Kesalahan ini biasanya boleh diperbaiki dengan mengemaskini. Saya juga harus menyebutkan bahawa gedung untuk mana-mana platform mudah alih memerlukan SDK yang dipasang pada komputer anda (untuk Android, anda memerlukan Android Studio.) Untuk memuat turun Android Studio, sila ikuti pautan ini dan tetapkannya up menggunakan arahan yang disediakan di laman web: //developer.android.com/studio/index.html

Sebaik sahaja ia dipasang, anda perlu memasang pemacu untuk telefon anda dengan membuka Android Studio, mengklik Mengkonfigurasi> Pengurus SDK, kemudian klik Pengurus SDK Terbuka Berdiri. Tetingkap baru akan dibuka, tatal ke jalan ke bawah dan pastikan Google USB dan Pemandu Web dipilih. Anda boleh meninggalkan komponen lain yang dipilih secara lalai. Kemudian klik pada Pasang Pakej di bahagian bawah kanan dan tunggu untuk dipasang. Setelah itu selesai, pergi ke aplikasi Tetapan di telefon anda> Perihal / Perihal Telefon> Maklumat Perisian dan cari pengepala "Membina Nombor". Ia sepatutnya menjadi kumpulan nombor dengan perpuluhan dan "kunci keluaran" yang dilampirkan hingga akhir. Ketik nombor "Build Number" beberapa kali sehingga ia berkata "Tahniah, anda kini pemaju" atau sesuatu yang serupa. Kemudian kembali ke halaman Tetapan Utama anda dan cari "Pilihan Pemaju". Klik padanya dan cari kotak pilihan "USB Debugging". Pastikan ini ditandakan. Kemudian pasangkan telefon anda ke komputer anda dan pastikan "USB Debugging Enabled" atau sesuatu yang serupa dipaparkan dalam Bar Pemberitahuan, kemungkinan besar anda perlu memperluas Bar untuk melihat pesan itu.

Terlepas dari apakah anda ingin memasang pemacu untuk telefon anda untuk menggunakannya dalam Perpaduan, anda perlu memasang Android Studio, tanpa itu anda tidak dapat benar-benar membina aplikasi untuk telefon anda. Sekiranya menyediakan pemandu terlalu membosankan, ikuti pilihan alternatif di Bahagian Ujian tutorial ini. Sebaik sahaja anda memasang Android Studio dan sediakan USB Debugging, anda boleh kembali dan ikuti tutorial ini.

Tutorial ini berdasarkan tutorial lain, saya akan memberikan pautan kepadanya jika anda mahu menyemaknya. //pixelnest.io/tutorials/unity-touch-controls ...

Tutorial saya meliputi lebih daripada yang asal (Menu, HUD, dan Pengujian). Bahasa pengaturcaraan yang saya akan gunakan untuk tutorial ini ialah C #. Kesatuan juga menyokong JavaScript, bagaimanapun, C # mempunyai ciri-ciri yang lebih canggih, walaupun sedikit lebih sukar untuk dipelajari. Anda bebas menukar kod C # ke JS sekiranya anda sudah mengetahui JS tetapi malangnya, saya tidak akan dapat mengira sebarang kesalahan bahasa tertentu jika anda memilih untuk menggunakannya. Saya juga akan mengajar anda beberapa tip dan cara yang saya pelajari semasa saya membuat permainan. Mari kita mulakan.

Langkah 4: Menetapkan Projek & Membuat Prefabs Partikel

Menyediakan Projek

Sebaik sahaja anda berjaya membuat projek anda, pastikan anda mempunyai folder berikut dalam folder aset anda:

  • Font
  • Bahan
  • Menu
  • Prefabs
  • Adegan
  • Skrip
  • Tekstur

Ini adalah satu-satunya folder yang anda perlukan untuk projek ini. Walau bagaimanapun, jika anda memutuskan untuk memperluaskannya maka anda bebas menambah folder lain seperti yang anda lihat patut (bunyi, animasi dan lain-lain)

Sebaik sahaja anda telah mencipta folder di atas pergi ke File> Build Settings. Di tetingkap ini klik pada pilihan Android di bawah tajuk "Platform", kemudian klik pada "Switch Platform" di sudut kiri bawah. Ini akan memberitahu Unity bahawa anda sedang membina untuk Android dan akan menubuhkan projek masing-masing. Anda perlu memasang Android Studio supaya kerja ini berfungsi. Kemudian simpan tempat kejadian sama ada menekan Ctrl + S atau memilih "Simpan Pemandangan" dalam Menu Fail. Simpan adegan ini sebagai "Main Pemandangan" dalam folder "Babak" anda.

Membuat Prefabs zarah

Di atas adalah imej bintang dengan latar belakang hitam. Simpan imej ini ke dalam folder Tekstur anda. Anda akan menggunakannya untuk Sistem Zarah.

Tetapkan Jenis Tekstur ke Tekstur dengan mengklik pada imej dalam folder Tekstur Anda dan memilih nilai yang sesuai di Inspektor, kemudian klik Terapkan. Pastikan kotak "Alpha Is Transparency" ditandakan. Ini akan menjadikan latar belakang bintang telus.

Kemudian buat Sistem Zarah dan sediakannya menggunakan nilai yang ditunjukkan dalam tangkapan skrin di atas.

Jangan ragu untuk mengubah suai nilai-nilai ini jika anda mahu, mereka hanya garis panduan. Bermain di sekitar dengan nilai-nilai ini akan memberi anda pemahaman yang lebih baik tentang bagaimana ia berfungsi.

Pastikan Tekstur Sistem Zarah ditetapkan kepada Star Texture dengan memperluaskan Shader dan memilih Star Texture di dalam kotak di sebelah kanan. Atau anda boleh seret dan lepaskan imej dari folder Tekstur anda ke kotak. Juga pilih Mobile / Particle / Alpha Blended Shader dengan mengklik kotak drop down di sebelah Shader, kemudian Mobile> Particles> Alpha Blended. Ini akan memberitahu sistem zarah untuk membuat latar belakang Bintang telus dan akan mengoptimumkannya untuk Android. Tukar nama di bahagian atas di Inspektor untuk "Letupan" dan lakukan perkara yang sama dalam Hierarki. Kemudian seret Sistem Letupan Letupan ini dari Hierarki ke folder Prefabs anda dalam paparan Projek. Ini akan mencipta prefab sistem zarah itu.

Seterusnya kami akan mencipta Prefab Trail, yang akan menarik jejak selagi anda menyeret jari anda pada skrin. Apabila anda mengangkat jari anda, jejak itu akan hilang selepas beberapa saat.

Buat Objek Permainan Empat baru (Klik Kanan dalam Hierarki dan pilih "Buat Kosongkan") dan sebutlah Laluan atau sesuatu yang serupa. Kemudian tambahkan komponen Trail Renderer kepadanya. Sediakannya menggunakan nilai yang diberikan dalam tangkapan skrin di atas.

Buat Bahan baharu dengan mengklik pada folder Bahan dalam paparan projek, kemudian Klik Kanan dalam paparan projek dan klik Buat> Bahan. Nama Bahan sebagai Bahan Laluan atau Laluan Mat.

Kemudian klik pada Trails Game Object di Hierarki dan seret dan lepaskan Trails Mat dari pandangan Projek ke tetingkap Inspektor. Ini akan menyerahkan Bahan kepada Objek Permainan Jejak. Kemudian seret Objek Permainan Trails ini ke folder Prefab anda untuk menjadikannya Prefab.

Akhirnya, kami akan mencipta Sistem Zarah lain yang akan berbeza dengan yang pertama. Yang satu ini akan meletup keluar perlahan-lahan, tidak akan mempunyai sebarang graviti di atasnya dan akan perlahan-lahan memudar. Buat Sistem Zarah yang lain, labelkan Letupan Pinch (kami akan menggunakan gerak isyarat untuk memulakannya). Pastikan Bahan Bintang ditugaskan ke Sistem Zarah ini kemudiannya masuk ke Prefab.

Ini adalah semua kesan yang akan kita gunakan. Jangan ragu untuk membuat lebih banyak jika anda suka, atau mengubah suai yang sedia ada. Satu perkara terakhir sebelum kita boleh bergerak ke pengaturcaraan. Klik pada Kamera Utama dalam Hierarki. Tukar Warna Latar Belakang sama ada hitam atau warna gelap lainnya dan ubah Saiz itu (di bawah kotak undur Unjuran) dari 5 hingga 10. Ini akan membolehkan anda melihat lebih banyak latar belakang. Lihatlah tangkapan terakhir di atas jika anda bingung.

Langkah 5: Membuat & Menambah Skrip Kesan

Membuat Skrip

Sekarang kita telah mencipta semua prefabs, kita boleh teruskan ke pengaturcaraan. Anda perlu menulis sedikit kod kerana ini adalah tutorial yang lebih maju. Saya sebenarnya mempunyai dokumen yang menerangkan asas-asas pengaturcaraan jika anda berminat. Ini juga satu lagi bacaan yang luas. Saya telah memuat naiknya ke Dropbox, di sini ialah pautan:

//bit.ly/29qhLDx

Buat C # Script baru dalam folder Skrip anda (klik pada folder Skrip, kemudian Klik Kanan dalam Tetingkap Projek> Buat> C # Script) dan label Skrip ini sebagai "SpecialEffects". Buka ia dalam IDE yang anda inginkan (Persekitaran Pembangunan Bersepadu) dan tuliskan kod di bawah, perkataan untuk perkataan. Alasan saya memberitahu anda untuk menulis kata demi kata yang bertentangan dengan menyalin / menampalnya kerana menaipnya akan membolehkan anda memahami kod yang lebih baik. Ia juga akan membawa anda ke amalan memeriksa kod anda untuk sebarang kesilapan. Berikut ialah kod:

 {/ * Membuat skrip ini statik peribadi, yang bermaksud fungsi skrip ini tidak dapat diakses di luar skrip ini dan nilai-nilai itu tidak pernah berubah kecuali anda secara khusus menceritakannya kepada contoh-contoh SpecialEffects * / swasta statik; 
 // Ini adalah bahan prefab awam letupan ParticleSystemEffect, pinchExplosionEffect; permainan awam GameObject trailsPrefab; 
 / * Fungsi ini diaktifkan apabila skrip pertama dimulakan, sebelum fungsi Mula. Fungsi Mula memerlukan skrip ini diaktifkan tetapi fungsi Awake berjalan tanpa mengira sama ada skrip ini diaktifkan * / tidak sah Awake () {// Menugaskan nilai contoh kepada contoh skrip ini = ini; } 
 / / Gunakan ini untuk permulaan tidak sah Mula () {// Memastikan semua prefabs diaktifkan jika (explosionEffect == null) Debug.LogError ("Kesan Letupan Hilang"); jika (pinchExplosionEffect == null) Debug.LogError ("Kesan Letupan Pinch Hilang"); jika (trailsPrefab == null) Debug.LogError ("Missing Trails Prefab"); } 
 / // Kesan Letupan awam statik ParticleSystem MakeExplosion (kedudukan Vektor3) {// Jika skrip ini dilumpuhkan, log ralat jika (contoh == null) {Debug.LogError ("Tiada Skrip SpecialEffects di tempat kejadian"); pulangan null; } 
 // Mencipta Kesan Letupan pada kedudukan yang diberikan PartikelSistem kesan = Instantiate (instance.explosionEffect) sebagai ParticleSystem; effect.transform.position = position; // Menghancurkan Kesan Letupan selepas Kesan telah selesai Musnahkan (effect.gameObject, effect.duration); kesan pulangan; } 
 / // Pinch Effect Explosion Static static particleSystem MakePinchExplosion (position Vector3) {// Jika script ini dinyahdayakan, log kesalahan jika (contoh == null) {Debug.LogError ("Tidak ada Skrip SpecialEffects di tempat kejadian"); pulangan null; } 
 // Mencipta Letupan Pinch pada kedudukan yang dinyatakan ParticleSystem effect = Instantiate (instance.pinchExplosionEffect) sebagai ParticleSystem; effect.transform.position = position; kesan pulangan; } 
 / // Kesan jejak statik GameObject MakeTrail (kedudukan Vektor3) {// Jika skrip ini dilumpuhkan, log ralat jika (contoh == null) {Debug.LogError ("Tidak ada Skrip SpecialEffects di tempat kejadian"); pulangan null; } // Buat jejak baru pada kedudukan set GameObject trail = Instantiate (instance.trailsPrefab) sebagai GameObject; trail.transform.position = position; jejak kembali; } 

Menambah Skrip ke Adegan

Lihat, itu tidak terlalu sukar, bukan? Sekarang bahawa kami mempunyai skrip ini, kami dapat menambahkannya ke tempat kejadian. Buat Objek Permainan Kosong yang baru, labelkannya sebagai Skrip dan seret Skrip dari folder Skrip anda ke Skrip Objek Permainan.

Sekarang tetapkan Pembolehubah ke Prefabs masing-masing dengan menyeret Prefab dari folder Prefabs dalam Projek Lihat ke sifat Skrip di Window Inspector. Lihat tangkapan skrin di atas untuk rujukan.

Langkah 6: Membuat & Menambah Skrip Kawalan Sentuh

Membuat Skrip

Kini sudah tiba masanya untuk memprogramkan kawalan sentuhan untuk aplikasi ini. Fungsi utama aplikasi ini adalah untuk mencetuskan kesan apabila skrin disentuh. Tiga gerak isyarat yang akan kami gunakan akan menjadi paip, sapu dan secubit untuk zum. Anda juga boleh menambah lebih banyak gerak isyarat jika anda mahu, tetapi anda perlu berbuat demikian mengikut kehendak anda sendiri.

Kesan yang kami mencetuskan akan berbeza-beza berdasarkan jenis input sentuh (ketuk, sapu, jepit untuk zum dan lain-lain). Ini akan membolehkan kami memastikan bahawa isyarat yang betul sedang diiktiraf.

Kaedah di mana kita akan mengesan gerak isyarat ini menggunakan kelas "Input" Unity, yang menyatukan semua maklumat tentang setiap jenis Input masuk ke satu lokasi. Beberapa contoh Input lain ialah papan kekunci, pengawal konsol atau sentuhan.

Perpaduan mempunyai sub kelas tertentu yang dipanggil Input.touches dan ia mengandungi peristiwa-peristiwa untuk pelbagai jenis sentuhan bersama dengan keadaan mereka dalam bingkai tertentu.

A Touch adalah bekas yang memegang maklumat mengenai pelbagai jari, yang akan kita lihat semasa mengendalikan kawalan sentuhan.

Jenis sentuhan jenis pertama yang akan kami pelaksana adalah secubit, kemudian ketuk, kemudian leret. Cubit adalah apabila skrin disentuh dengan dua jari dan diseret sama ada ke luar atau ke dalam. Ketuk ialah apabila skrin disentuh untuk jangka masa yang singkat (biasanya satu saat). Ia sama dengan mengklik tetikus. Leret adalah apabila skrin disentuh dengan satu jari dan diseret sepanjang skrin.

Buat Skrip baru dalam folder Script anda dan labelnya "TouchControls". Kemudian ketik kod berikut di bawah fungsi Kemas Kini.

 menggunakan UnityEngine; menggunakan System.Collections.Generic; 
 TouchControls kelas awam: MonoBehaviour {laluan kamus peribadi = Kamus baru (); sentuhan Touch swastaFinger1, pinchFinger2; peribadi ParticleSystem pinchExplosion; 
 / / Gunakan ini untuk permulaan tidak sah Mula () {} // Kemas kini dipanggil sekali setiap bingkai membatalkan Kemas Kini () {// Ini adalah kawalan sentuhan 
 // Menggunakan gelung untuk mencari semua jari // Controls untuk Pinch To Zoom, hanya berfungsi dengan 2 jari // Jika 2 jari berada di layar jika (Input.touchCount == 2) {// Tentukan dua jari ini kepada pemboleh ubah mereka sendiri var finger1 = Input.GetTouch (0); var finger2 = Input.GetTouch (1); 
 jika (finger1.phase == TouchPhase.Began && finger2.phase == TouchPhase.Began) {this.pinchFinger1 = finger1; this.pinchFinger2 = finger2; } 
 // Apabila jari telah dipindahkan, kemas kini skrip ke lokasi baru jika (finger1.phase == TouchPhase.Moved || finger2.phase == TouchPhase.Moved) {float baseDistance = Vector2.Distance (this.pinchFinger1.position, ini.pinchFinger2.position); float currentDistance = Vector2.Distance (finger1.position, finger2.position); 
 / // Purcent float currentDistancePurcent = currentDistance / baseDistance; 
 // Mencipta kesan antara jari-jari jika tidak ada sekarang (pinchExplosion == null) {Vector3 finger1Position = Camera.main.ScreenToWorldPoint (this.pinchFinger1.position); Vector3 finger2Position = Camera.main.ScreenToWorldPoint (this.pinchFinger2.position); 
 / Cari pusat antara 2 jari Vector3 pinchExplosionPosition = Vector3.Lerp (finger1Position, finger2Position, 0.5f); pinchExplosion = SpecialEffects.MakePinchExplosion (pinchExplosionPosition); } 
 // Mengambil skala asas dan meningkatkan atau menurunkan pinchExplosion.transform.localScale = Vector3.one * (currentDistancePurcent * 1.5f); }} 
 lain {// Jika jepit telah dilepaskan jika (pinchExplosion! = null) {// Create Explosions for (int i = 0; i <10; i ++) {var explosion = SpecialEffects.MakeExplosion (pinchExplosion.transform.position); letupan.transform.localScale = pinchExplosion.transform.localScale; } 
 / // Menghancurkan Kesan Letupan Cubit Pinch (pinchExplosion.gameObject); } 
 // Tekan kesan // Cek untuk semua jari untuk (int i = 0; i <Input.touchCount; i ++) {Sentuh sentuh = Input.GetTouch (i); 
 // Tekan adalah sentuhan cepat dan lepas jika (touch.phase == TouchPhase.Ended && touch.tapCount == 1) {// Sentuhan adalah lokasi skrin, ini mengubahnya ke lokasi dunia Vector3 position = Camera.main. ScreenToWorldPoint (touch.position); 
 // Mencipta Kesan Letupan SpecialEffects.MakeExplosion ((kedudukan)); } 
 lain {// Controls for the Swipe Gesture if (touch.phase == TouchPhase.Began) {// Store this new value if (trails.ContainsKey (i) == false) {// Touches are screen locations, this converts them ke lokasi dunia kedudukan Vector3 = Camera.main.ScreenToWorldPoint (touch.position); // Memastikan jejak itu kelihatan kedudukan.z = 0; 
 // Mencipta kesan permainan TrailsObject trail = SpecialEffects.MakeTrail (kedudukan); 
 // Jika jejak ini masih diaktifkan jika (jejak! = Null) {// Log trail Debug.Log (jejak); / Tambah beberapa jejak jejak. Tambah (i, jejak); }}} 
 lain jika (touch.phase == TouchPhase.Moved) {// Menggerakkan jejak jika (trails.ContainsKey (i)) {// Array untuk Trails GameObject trails = trails [i]; 
 / / Konversi menyentuh ke lokasi dunia Camera.main.ScreenToWorldPoint (touch.position); Kedudukan Vektor3 = Camera.main.ScreenToWorldPoint (touch.position); // Memastikan jejak kelihatan kedudukan.z = 0; 
 // Menetapkan kedudukan laluan untuk kedudukan jejak jari.transform.position = position; }} 
 lain jika (touch.phase == TouchPhase.Ended) {// Hapus semua laluan yang kelihatan jika (trails.ContainsKey (i)) {GameObject trail = trails [i]; 
 / // Fades melintasi Musnahkan (trail, trail.GetComponent (). Waktu); jejak.Dapatkan (i); }}}}}}} 

Untuk fungsi Ketik, kami mengambil lokasi semua jari yang diletakkan pada skrin, sama ada satu jari atau empat dan kemudian kami membuat kesan Letupan apabila jari telah diambil dari skrin, dalam kedudukan di mana ia berada, sebelum jari telah diambil kira.

Untuk fungsi Seret, pembolehubah baru telah dibuat. Kami memerlukan pemboleh ubah ini untuk mewujudkan hubungan antara jari dan Trail. Apakah kod tersebut:

Jika sentuhan baru dibuat, buat Trail baru dan hubungkannya dengan jari dengan cara kamus.

Apabila jari dipindahkan, selagi jari mempunyai Trail yang dikaitkan dengannya, kedudukan Objek Permainan Trail dipindahkan bersama dengan jari.

Apabila jari diangkat, jejaknya dimusnahkan.

Untuk fungsi Pinch tiga lagi pemboleh ubah baru telah dibuat. Pemboleh ubah ini disimpan kedudukan pertama jari-jari, yang kemudian kita gunakan menghitung perbezaan antara jarak jari. Pembolehubah untuk kesan Letupan Pinch juga dicipta supaya kami boleh mengemas kini dan memusnahkannya.

Fungsi pinch adalah lebih rumit, kerana hakikat bahawa kita tidak mahu ia disalah anggap apa-apa lagi.

Untuk fungsi Pinch, jika dua jari dikesan di skrin, kesan Pinch Explosion baru dicipta di antara kedua-dua kedudukan. Selepas itu, isyarat itu diisytiharkan sebagai Pinch. Jika jari dipindahkan, Objek Permainan Letupan Pinch juga dipindahkan dan diperkatakan bersama dengannya.

Sebaik sahaja Letupan Pinch telah selesai, atau jika jari diangkat dari skrin, ia akan berubah menjadi Letupan Ketuk biasa.

Menambah Skrip ke Adegan

Sekarang bahawa Script Kawalan selesai, tambahnya ke tempat kejadian dengan cara yang sama seperti skrip sebelumnya atau ia tidak akan berfungsi.

Itulah pengaturcaraan utama yang dilakukan. Kami masih perlu melakukan pengaturcaraan lebih lanjut untuk Menu & HUD, tetapi ia akan menjadi lebih kurang dan mudah difahami. Tetapi, sebelum kita pergi ke Menu, kita perlu menguji aplikasi untuk melihat apakah ia berfungsi seperti yang sepatutnya.

Langkah 7: Ujian

Ujian adalah penting apabila membangunkan apa-apa jenis perisian. Tanpa ujian, anda tidak akan tahu jika semuanya berfungsi seperti yang sepatutnya.

Sebaiknya, anda perlu ujian sebaik sahaja anda melaksanakan ciri baharu, bagaimanapun, untuk tujuan tutorial ini, kami akan menguji selepas kami melaksanakan kebanyakan ciri-ciri.

Terdapat pelbagai kaedah ujian. Yang paling berkesan adalah membina dan menjalankan aplikasi pada telefon Android semasa anda pergi. Perpaduan sebenarnya membolehkan anda menguruskan hal ini dengan mudah, dengan syarat anda mempunyai pemandu yang betul dipasang.

Sebelum anda benar-benar dapat membina dan menguji aplikasi, anda perlu menyediakan beberapa perkara. Pergi ke Edit> Tetapan Projek> Pemain. Di bahagian atas tetingkap Inspektor, anda akan melihat "Nama Syarikat" dan "Nama Produk". Ubah ini kepada apa sahaja yang anda mahukan. Kemudian mengembangkan tab "Tetapan Lain" jika belum dan pergi ke "Pengenal Bundle". Tukar ini ke com.CompanyNameYouSet.ProductNameYouSet. Dalam kes saya, nama syarikat saya adalah U dan nama produk saya adalah Instructables, jadi Pengenal Bundle saya adalah com.U.Instructables. Jika anda tidak mengubahnya maka anda tidak akan dapat membina aplikasi untuk Android.

Sekiranya anda mempunyai Pemacu yang dipasang, sila pergi ke Bina Tetapan dalam Menu Fail. Kemudian klik pada "Add Open Scenes". Ia harus menambah "Pemandangan Utama" ke dalam senarai dan berikan nombor "0". Setelah itu selesai, pastikan platform anda dipilih Android dan telefon anda disambungkan ke komputer anda kemudian klik pada "Build and Run". Perpaduan akan mula membina aplikasi anda, bagaimanapun, sebelum ia dapat menyelesaikan sepenuhnya membina, ia memerlukan lokasi SDK Android anda. Untuk mencari lokasi ini, buka Android Studio> Konfigurasi Tetapan> Pengurus SDK kemudian lihat bahagian atas untuk "Lokasi SDK Android". Ini adalah lokasi yang harus anda titik Perpaduan. Apabila Perpaduan tahu di mana SDK, ia akan terus membina aplikasi anda. Setelah apl selesai selesai, ia akan menjalankannya secara automatik pada telefon anda. Anda kemudian bebas untuk bermain-main dengan aplikasinya dan nikmati kerja keras anda. Cuba semua gerak isyarat untuk memastikan semuanya berfungsi.

Kaedah lain untuk ujian ialah klik pada "Build" dan bukannya "Membina dan Jalankan" dan kemudian pilih lokasi untuk menyimpan .apk (sambungan fail Android untuk aplikasinya). Setelah fail ini disimpan dan dibina, anda perlu memindahkannya ke storan telefon anda, dan memasangnya secara manual pada telefon anda. Kaedah ini adalah cara anda menghantar aplikasi anda kepada orang lain jika anda inginkan.

Satu lagi cara ujian adalah melalui Editor Perpaduan. Dengan menekan butang Main di bahagian atas skrin di tengah, Perpaduan akan membina dan menjalankan aplikasi / permainan anda. Ini menjimatkan anda daripada menggunakan telefon anda untuk ujian kecil. Walau bagaimanapun, jika anda ingin menggunakan kaedah ini untuk menguji permainan anda di Android, anda perlu memuat turun Unity Remote 4 dari Gedung Google Play atau App Store iOS. Remote Perpaduan membolehkan anda menguji permainan anda dalam Perpaduan, tanpa harus membuat pembentukan penuh setiap kali. Ia menjimatkan banyak masa. Satu perkara lagi ialah ia mengurangkan kualiti grafik pada telefon anda. Tetapi ini perlu. Ia masih berfungsi dengan baik untuk menunjukkan kepada anda bagaimana apl / permainan anda akan kelihatan pada telefon anda. Jika anda membina untuk PC (Windows) maka anda boleh menguji permainan dalam editor tanpa alat tambahan. Pastikan keluar dari mod Main dalam Perpaduan selepas anda telah menguji permainan anda kerana apa-apa perubahan yang dibuat kepada mana-mana komponen akan dibalikkan apabila anda keluar dari mod Main.

Kaedah-kaedah ini adalah yang paling berkesan apabila menguji permainan anda kerana anda benar-benar dapat melihat jika kod anda berfungsi dengan cara yang sepatutnya. Walau bagaimanapun, kaedah lain yang anda juga boleh gunakan, kaedah ini adalah untuk Microsoft Visual Studio, yang merupakan IDE yang saya gunakan, tetapi ia harus sama dengan IDE lain.

Satu kaedah ialah titik putus. Katakan anda menulis beberapa kod, kemudian masuk ke ralat. Anda tidak tahu di mana kod anda salah, tetapi anda mempunyai idea umum. Jadi anda akan menambah titik putus di atas, di bawah dan pada kod yang salah. Titik putus-putus akan menghentikan program apabila mencapai titik putus dan memberi anda maklumat mengenai program tersebut sehingga titik putus.

Untuk membuat titik putus, cari garis di mana anda rasa kod anda salah dan klik pada margin pertama ke kiri. Ia harus menjadi warna yang lebih ringan daripada halaman utama. Titik merah sepatutnya muncul dan jika anda melayang di atas titik merah, ia akan memberitahu anda lokasi titik putus. Lihat tangkapan skrin untuk rujukan.

Dalam tangkapan skrin, saya telah menggunakan baris "if (explosionEffect == null" sebagai ralat) Apabila anda mempunyai breakpoint, masih dalam Visual Studio, klik Debug> Start Debugging atau tekan F5 pada keyboard. Perpaduan dan pautan ke VS dan di bahagian bawah tetingkap VS bar merah akan muncul dengan mengatakan "Sedia".

Sekarang pergi ke Unity dan klik pada Icon Play. Ini akan menjalankan aplikasi / permainan sehingga titik putus, di mana ia akan mengembalikan anda ke tetingkap VS dengan maklumat tentang bagaimana program berjalan sehingga titik putus. Jika permainan / aplikasi anda berjalan dengan baik sehingga titik putus, maka garis itu bukannya dengan kesilapan. Jika, bagaimanapun, program anda melemparkan ralat sebelum titik putus atau tidak berjalan sama sekali, maka boleh menjadi garis itu, atau garis di atasnya. Untuk mencari baris yang salah, anda perlu terus menambah titik putus sehingga anda telah menemuinya. Kaedah terpantas adalah untuk menambah beberapa titik istirahat pada satu masa dan bukannya satu. Ini adalah cara ujian yang sangat baik dan membolehkan anda menjadi lebih tepat.

Sebaik sahaja anda telah menyelesaikan ujian anda, sama ada tekan Shift + F5 untuk mengakhiri debugging dalam VS atau kembali ke menu Debug dan klik "Hentikan Penyahpepijatan". Ini kemudian akan menghentikan Debug dan membenarkan projek Perpaduan dimainkan secara normal.

Semasa ujian, pastikan anda menggunakan kombinasi kaedah ini berbanding dengan satu kerana ia akan membolehkan anda mencari tepat di mana anda telah salah.

Juga berhati-hati dengan ejaan dan sintaks, bahasa pengaturcaraan boleh agak tidak mengizinkan, dan C # adalah salah satu bahasa ini. Jika anda mengeja sesuatu yang salah, anda akan mendapat ralat, dan ia akan mencabar untuk mencari kesilapan ini kerana akaun VS atau Unity bukan kesalahan ejaan. Saya telah menghabiskan berjam-jam cuba untuk membetulkan pepijat, hanya untuk mengetahui bahawa saya mengeja fungsi atau variabel yang salah. Memeriksa ejaan dan sintaks anda semasa anda pergi adalah kebiasaan yang baik untuk masuk kerana ia akan menjimatkan jam anda dalam penyahpepijatan. Jika anda sampai ke titik di mana anda telah empat kali memeriksa kod anda dan anda masih tidak dapat mengetahui apa yang salah, dapatkan orang lain untuk melihat kod anda. Sebaiknya anda mahu pengaturcara lain atau seseorang yang sekurang-kurangnya mempunyai pengetahuan pengaturcaraan, tetapi jika anda tidak mempunyai sesiapa yang mengetahui pengaturcaraan maka dapatkan sesiapa sahaja yang bersama dengan anda pada masa itu untuk melihatnya. Beritahu mereka untuk melihat secara khusus kesilapan ejaan kerana mereka mungkin dapat memilihnya apabila anda tidak boleh.

Cuba jangan terlalu kecewa jika anda membuat kesilapan ejaan dan membawamu berumur untuk menemuinya. Ia berlaku kepada semua orang. Ia adalah salah satu kegembiraan menjadi seorang programmer.

Sekarang bahawa kami telah melengkapkan ujian, kami boleh teruskan untuk membuat Menu & HUD.

Langkah 8: Mencipta Menu Utama & HUD

Membuat Menu / HUD untuk aplikasi anda sebenarnya agak penting. Menu Utama memberikan maklumat pemain tentang aplikasi anda dan biasanya membenarkan mereka mengawal aspek tertentu aplikasinya. Untuk tutorial ini, kami tidak akan belajar cara memprogram Menu supaya pemain dapat mengubah tetapan kerana sebenarnya tidak ada apa-apa untuk pemain untuk berubah (tidak ada bunyi, muzik dan lain-lain). Saya merenung sambil menambah beberapa kesan bunyi dan mungkin muzik, tetapi mereka akan datang dalam tutorial kemudian. Menu Utama yang akan kami buat akan menjadi agak asas tetapi tetap menyenangkan secara estetika. Kami akan mempunyai tajuk & tiga butang (Main, Bantuan & Keluar). Butang Main hanya akan membawa anda ke Pemandangan Utama, butang Bantuan akan membawa anda ke Panel dengan Fail Bantuan di atasnya dan butang Keluar akan hanya keluar permainan. Saya akan menunjukkan kepada anda dua cara untuk melaksanakan butang Keluar, kaedah pertama akan menjadi sedikit lebih mudah.

Anda boleh menggunakan mana-mana fon, imej latar belakang dan lain-lain yang anda mahu, dengan syarat ia sesuai dengan tema permainan. Juga pastikan aset anda untuk permainan anda adalah hak cipta percuma atau boleh digunakan secara komersil jika anda merancang untuk membebaskannya di kedai aplikasi jika tidak, anda boleh lari ke beberapa isu undang-undang. Untuk tutorial ini, saya akan menggunakan imej Pusat Wilayah Galactic ini:

//bit.ly/29eP2jB

Dan fon ini:

//www.dafont.com/fineliner-script.font

//www.dafont.com/post-it-penscript.font

Fon dilampirkan ke bahagian bawah langkah ini dan imej di bahagian atas jika anda mahu menggunakan aset ini untuk aplikasi anda.

Sebaik sahaja anda telah memuat turun fon dan imej yang anda mahu gunakan, importnya ke projek Perpaduan anda dalam folder masing-masing (Font masuk dalam folder Font dan Imej masuk dalam Folder Menu.)

Membuat Menu

Untuk membuat Menu, kita perlu membuat Scene baru. Sama ada tekan Ctrl + N atau pergi ke Fail> Adegan Baru. Simpan sebagai Menu atau Menu Utama.

Sekarang kita mempunyai adegan kita, kita perlu menambah kanvas. Kanvas ini membolehkan kami menggunakan semua ciri UI yang kami perlukan. Fikirkan ia sebagai tindihan yang sentiasa bersaiz saiz skrin anda.

Untuk membuat klik kanan Kanvas dalam Hierarki> UI> Kanvas. Dalam tetingkap Inspektor Kanvas, pastikan Mod Render ditetapkan ke Ruang Skrin - Overlay dan tandakan pilihan Pixel Perfect. Di bawah komponen Scaler kanvas, tukar mod skala dari Saiz Pixel Tetap ke Skala Saiz Skrin. Ini membolehkan semua komponen Kanvas untuk naik atau turun jika resolusi skrin meningkat atau berkurangan. Tukar Resolusi Rujukan ke Resolusi skrin telefon anda di Landscape View (saya adalah 1920 x 1080) dan ubah nilai Padanan dari 0 hingga 0.5. Ini akan memastikan komponen-komponen tersebut disingkat sama-sama dalam Lebar dan Ketinggian.

Sekarang anda perlu menukar View Game anda agar sesuai dengan Resolusi Rujukan Kanvas anda. Untuk melakukan ini, klik pada tab Permainan di bahagian atas, ia harus mempunyai ikon Pacman di sebelah kiri. Jika anda tidak dapat melihatnya pergi ke Tetingkap> Permainan, atau tekan Ctrl + 2. Lihat ke kiri atas tetingkap Permainan dan anda akan melihat kotak dropdown yang mengatakan Aspek Percuma. Klik padanya. Di bahagian bawah, harus ada ikon Plus, klik pada itu dan ubah Jenis dari Rasio Aspek ke Resolusi Tetap. Labelkannya kepada apa jua resolusi skrin telefon anda (saya adalah 1080p) dan tukar Lebar dan Ketinggian untuk sepadan dengan Resolusi yang anda inginkan. Ini akan membolehkan anda membuat skala komponen anda supaya ia dipaparkan dengan betul pada telefon anda. Sekiranya anda menyimpannya di Aspek Percuma, sukar untuk mengukur komponen anda dengan sewajarnya.

Buat Panel (sama seperti anda mencipta Kanvas, hanya kali ini, pilih Panel sebaliknya). Jika Kanvas anda sudah dipilih maka Panel secara automatik akan menjadi anak Kanvas.

Dalam Perpaduan, kanak-kanak dan ibu bapa sangat penting. Seorang kanak-kanak adalah sub kumpulan ibu bapa, ia mewarisi sifat-sifat tertentu dari ibu bapa. Untuk membezakan antara anak dan ibu bapa: ibu bapa akan mempunyai anak panah di sebelah kiri nama mereka yang anda boleh klik untuk menunjukkan atau menyembunyikan anak-anak.

Untuk membuat kanak-kanak, anda hanya perlu klik kanan pada objek di Hierarki dan kemudian buat objek anak anda dari Menu yang muncul atau anda boleh menyeret mana-mana satu objek kepada yang lain untuk menjadikannya kanak-kanak objek itu. Dalam tangkapan skrin di atas, saya telah membuat Objek Permainan Kosong dan menyeretnya ke Kanvas untuk menjadikan Objek Permainan Kosong seorang kanak-kanak Kanvas. Ini sangat berguna dan dalam beberapa keadaan, kritikal. Sebagai contoh, jika anda membuat panel di luar Kanvas (jika Panel adalah ibu bapa) dan anda ingin mengecilkannya dengan saiz yang sama seperti Kanvas, anda perlu mengetahui dimensi Kanvas dan kemudian menetapkan secara manual dimensi Panel menjadi sama. Bagaimanapun, jika Panel adalah Anak Kanvas maka anda boleh menggunakannya dengan menggunakan Anchor (yang saya akan jelaskan sedikit). Sekiranya anda membuat Panel menjadi, secara lalai seorang kanak-kanak Kanvas maka Panel secara automatik akan dikecilkan ke Kanvas. Terdapat juga isu sedikit unsur-unsur UI yang tidak kelihatan kecuali mereka semua anak-anak Kanvas. Ibu bapa / kanak-kanak juga berguna untuk menganjurkan Hierarki, yang saya juga akan segera tamat.

Sekarang bahawa kami mempunyai Panel ini, kami dapat menyediakan Imej Latar Belakang. Sebelum kita berbuat demikian, kita perlu memberi nama mereka dengan sewajarnya, menukar nama Kanvas dalam Hierarki ke Menu Kanvas dan menukar nama Panel ke Imej Latar Belakang. Sekarang klik pada Panel Imej Latar Belakang dan lihat tetingkap Inspektor. Harus ada komponen Image (Script) yang dilampirkan. Cari Imej Sumber. Untuk menukar Imej ini, sama ada seret dan lepaskan Imej yang dimuat turun dari tetingkap projek anda ke kotak atau klik pada simbol bulatan dengan titik kecil di tengah. Ini harus membuka tetingkap lain yang berlabel Select Sprite. Dari tetingkap ini, anda boleh memilih latar belakang anda. Jika anda tidak dapat melihat imej anda pastikan jenis imej ditetapkan sebagai Sprite (2D & UI).

Sebaik sahaja anda telah memilih Latar Belakang anda, anda perlu meningkatkan Alpha, untuk melakukannya klik pada kotak Warna dan di bahagian bawah akan terdapat kotak slider yang berlabel A. Seret ini ke kanan sehingga ia berada di hujung seksyen putih dan nilainya ditetapkan ke 255. Anda juga boleh memintal imej warna tertentu dari tetingkap yang sama ini jika anda mahu.

Untuk menetapkan Tajuk, buat objek Teks sebagai anak kepada Imej Latar Belakang. Namakan namanya kepada Tajuk. Tukar warna teks ke putih dan pastikan bahawa apa-apa Objek Permainan Teks berikutnya yang anda buat juga berwarna putih. Dalam seksyen Teks, tukar dari Teks Baharu kepada apa sahaja yang anda mahu Tajuk anda (dalam kes ini ia Instructables) dan tukar fon ke fon pilihan anda (saya akan menggunakan font Postit-Penscript). Di bawah tajuk Perenggan, ubah Alignment ke apa sahaja yang anda mahu, saya akan memusatkan teks saya dalam paksi Vertikal dan Horizontal. Seterusnya, klik pada Fit Terbaik dan tukar saiz Max ke apa jua yang sesuai dengan fon anda. Fon saya agak nipis jadi saya akan menggunakan 90 sebagai Saiz Max saya. Pastikan anda mengklik pilihan Best Fit untuk setiap Objek Permainan teks berikutnya yang anda buat.

Kemudian lihat ke kanan atas di bawah header Rect Transform dan anda akan melihat kotak dengan garis dan beberapa teks di bahagian atas dan sisi kiri kotak. Ia harus mengatakan pusat di bahagian atas dan tengah di sebelah kiri. Klik pada kotak ini, tahan Alt dan Shift dan klik ikon di atas ikon tengah / tengah. Semak tangkapan skrin untuk rujukan. Sekarang jika anda menutup kotak itu harus mengatakan pusat di atas dan atas di sebelah kiri dan teks anda harus berpusat di atas. Ini adalah Anchor dan ia sangat berguna apabila mengatur Objek Permainan. Holding Alt menetapkan posisi Objek ke titik Anchor baru, dan memegang Shift menetapkan pivot. Ia menjimatkan anda daripada perlu menetapkan lokasi objek secara manual.

Sekiranya anda melihat ke kanan kotak Rect Transform anda akan melihat sekumpulan nombor. Ini adalah dimensi dan lokasi objek. Yang anda mahu tumpuan adalah: Pos X, Pos Y, Lebar & Ketinggian kotak. Lebar & Ketinggian adalah jelas. Pos X bergerak objek secara mendatar dan Pos Y bergerak secara menegak. Walau bagaimanapun, kotak ini akan berubah berdasarkan Anchor yang anda gunakan. Jika anda menggunakan Anchor stretch seragam, Pos X & Y akan berubah ke Kanan, Kiri Atas & Bawah yang melakukan perkara yang sama, tetapi ia membolehkan anda lebih banyak kawalan. Anda boleh menyeret di sepanjang label kotak ini untuk menggerakkan objek, taip nombor-nombor secara manual, atau gunakan alat Perpaduan untuk memindahkannya. Tukar Pos Y dari 0 ke -10. Ini akan memberikan 10 piksel ruang dari bahagian atas Imej Latar Belakang, menjadikannya kelihatan lebih bersih.

Klik pada Tambah Komponen dan tambah Shadow and Outline. Meningkatkan Alfa kedua-duanya hingga 255. Ini akan menjadikannya lebih menonjol berbanding latar belakang. Pastikan anda menambah komponen Shadow and Outline untuk setiap Objek Permainan teks berikutnya yang anda buat.

Sekarang kita mempunyai latar belakang kita saatnya untuk menetapkan butang. Buat Objek Permainan Kosong sebagai kanak-kanak Panel Imej Latar Belakang dan memanggilnya Pengurus Tata Letak Butiran. Dalam tetingkap Inspektor Objek Permainan Kosong ini, klik pada Tambah Komponen dan cari Kumpulan Layout Vertikal dan tambahkannya ke objek. Objek Permainan ini akan memastikan penempatan butang tetap konsisten. Tukar Anchor untuk Seragam Seragam (di bahagian bawah kanan) dan tukar kedudukan dan berputar dengannya. Butang Layout Manager kini perlu mengambil keseluruhan skrin. Seret turun dari atas sehingga ia mengambil 3 kotak grid dan seretnya dari sebelah kanan sehingga ia mengambil dua kotak grid. Sekiranya anda tidak dapat melihat grid, lihat bahagian atas tetingkap Scene di mana ia mengatakan Gizmos. Klik pada itu dan kemudian klik pada Show Grid.

Sekarang buat Objek Permainan Text lain sebagai kanak-kanak Imej Latar Belakang dan tetapkannya dengan cara yang anda mahu. Labelnya Mula. Jika anda menggunakan berbilang fon, gunakan font kedua anda untuk butang dan simpan fon pertama untuk Judul anda sahaja. Saya akan menggunakan font Fineliner_Script untuk butang saya. Anda boleh membuat butang apa-apa saiz yang anda mahu dengan syarat ia kelihatan jelas. Peraturan yang baik adalah untuk membuat saiz butang 10 atau 20 piksel lebih kecil daripada Tajuk, jadi jika Tajuk ditetapkan kepada saiz 90, anda akan menetapkan saiz butang kepada 80 atau 70. Saya akan menetapkan saiz butang saya kepada 70 Tukar teks untuk memulakan dan sediakan penjajaran untuk apa sahaja yang anda mahukan. Tambahkan komponen Butang ke dalamnya dan tukar warna yang Diserlahkan dan Ditekan ke warna pilihan anda, pastikan Warna Tekanan lebih gelap daripada yang Diserlahkan. Saya akan menetapkan Highlighted saya kepada Blue Light dan Warna Terpasang kepada Blue Darker. Sekarang tambah Shadow dan komponen Outline untuk itu dan tingkatkan Alpha sepenuhnya.

Duplikat butang ini dua kali (dengan mengklik kanan pada butang dan memilih Duplikat atau klik pada butang dan menekan Ctrl + D) sehingga anda berakhir dengan tiga butang secara total, panggil salah satu daripadanya Bantuan dan Keluar lain. Tukar Teks ini untuk mencerminkan label mereka. Buat mereka anak-anak dari Manger Layout.

Buat Panel, hubungi Panel Bantuan dan tetapkan Imej Sumber menjadi sama seperti Imej Latar Belakang. Ia sepatutnya menjadi ukuran yang betul. Meningkatkan Alpha sepenuhnya. Duplikat Tajuk dan menjadikannya anak Panel Bantuan. Tukar nama Objek Permainan untuk Membantu Tajuk Panel dan Panel Bantuan Teks. Ia sepatutnya berada di lokasi yang betul.

Duplikasikan salah satu butang dan gantikan semula ke Kembali. Jadikan ia kanak-kanak Panel Bantuan kemudian tukar Teks butang ke Kembali. Tetapkan penambat, kedudukan dan pangsi ke bawah Kiri dan ubah Pos X menjadi 10.

Buat Objek Permainan Text lain sebagai anak Panel Bantuan, labelkan Teks Teks Bantuan dan tetapkan Anchor untuk Seragam Seragam. Tukar kotak Atas dari 0 hingga 110. Tukar kotak Kiri, Kiri & Bawah ke 10. Sediakan Font, gunakan font yang sama seperti Butang. Tukar Saiz Maksimum ke 80. Pusat Teks dalam kedua-dua paksi. Kemudian salin dan tampal teks berikut ke dalam Kotak teks:

Aplikasi ini membolehkan anda membuat pelbagai kesan pada telefon anda. Mengetuk skrin akan membuat letupan, mencubit skrin akan membuat letupan yang lebih besar dan menyeret skrin akan membuat jejak.

Atau buat teks bantuan anda sendiri.

Sekarang pergi ke Fail> Bina Tetapan> Tambah Terbuka Adegan. Anda Menu Scene kini harus ditambah. Seret Adegan Menu anda ke atas supaya nombornya adalah 0 dan Adegan Utama adalah 1. Jika anda tidak melakukan ini, anda tidak akan dapat melihat Menu anda apabila anda membina App, dan tidak akan dapat untuk memuatkan Pemandangan Utama semasa mengklik Mula.

Sekarang kita telah menyediakan Menu, kita boleh bergerak ke pengaturcaraannya sehingga ia sebenarnya melakukan sesuatu.

Pemrograman Menu

Buat Skrip baru dan hubungi Menu. Kemudian ketik kod berikut:

 menggunakan UnityEngine; / // Ruang nama ini diperlukan untuk menggunakan sebarang komponen UI menggunakan UnityEngine.UI; / // Ruang nama ini diperlukan untuk menggunakan SceneManager menggunakan UnityEngine.SceneManagement; menggunakan System.Collections; Menu kelas awam: MonoBehaviour {// Ini adalah semua butang // ------------------------------- public Button start; bantuan butang awam; Keluar butang awam; butang balik awam; // ------------------------------- // Ini adalah Help Panel public GameObject helpPanel; / / ------------------------------- // Gunakan ini untuk permulaan tidak sah Mula () {// Tidak aktif panel bantuan helpPanel .SetActive (false); } // Kemas kini dipanggil sekali setiap bingkai tidak sah Kemaskini () {} // Fungsi untuk Butang Mula, beban Skenario Utama void Public StartPress () {SceneManager.LoadScene (1); } // Fungsi untuk Butang Bantuan, membolehkan Panel Bantuan tidak sah HelpPress () {helpPanel.SetActive (true); } // Fungsi untuk Butang Keluar, keluar dari permohonan awam tidak sah ExitPress () {Application.Quit (); } // Fungsi untuk Butang Kembali, melumpuhkan Panel Bantuan tidak sah BackPress () {helpPanel.SetActive (false); }} 

Seret Skrip ini ke Menu Kanvas kemudian tatal ke bawah di bawah kemudian Window Inspektor. Anda harus mempunyai:

Mulakan

Bantuan

Keluar

Kembali

Panel Bantuan

Seret Objek Permainan yang relevan ke medan masing-masing. Lihat tangkapan skrin di atas jika anda tidak pasti.

Sekarang Ctrl klik butang Mula, Bantuan, Keluar dan Balik dan tatal ke bawah ke komponen Button (Script). Di bahagian bawah komponen ini akan menjadi senarai kosong yang mengatakan Pada Klik (). Klik simbol Plus. Sekarang seret Objek Permainan Canvas Menu ke dalam bidang yang mengatakan Tiada (Objek). Kotak drop No Function sekarang perlu aktif.

Klik pada butang Start, kemudian klik pada drop No Function dan pergi ke bahagian bawah senarai di mana ia mengatakan Menu. Kemudian klik pada StartPress (). Ia sepatutnya mengatakan Menu. StartPress dalam kotak jatuh turun. Lakukan perkara yang sama untuk butang Bantuan, Keluar dan Balik tetapi pastikan anda memilih fungsi Tekan yang betul untuk mereka. Butang Bantuan sepatutnya mempunyai HelpPress, butang Exit ExitPress dan BackPress butang Kembali. Sekarang klik ikon Main dan uji keluar, klik pada butang Bantuan dan lihat apakah Beban Panel Bantuan. Mengklik butang Keluar tidak akan melakukan apa-apa kecuali anda telah membina App untuk Android. Anda perlu menguji butang Keluar pada telefon anda. Mengklik butang Main perlu membawa anda ke Pemandangan Utama.

Kini mungkin masa yang baik untuk menguji apl anda di telefon anda supaya membina dan menjalankannya dan memastikan Menu anda berfungsi sepenuhnya.

Seperti yang saya nyatakan sebelum terdapat pelbagai kaedah untuk mencipta Fungsi Keluar. Saya hanya menunjukkan cara yang paling mudah. Ini adalah kaedah kedua.

Buat Panel lain sebagai kanak-kanak Imej Latar dan panggil Panel Keluar. Tetapkan Warna Latarbelakang untuk menyesuaikan Latar Belakang agar kelihatan seperti digabungkan (saya memilih Biru Gelap) dan tetapkan Top dan Bawah ke 450 dan Kanan dan Kiri ke 760. Ini akan memusatkan kotak pada skrin.

Duplikat Tajuk dan menjadikannya anak Panel Keluar. Kurangkan saiz teks sedikit supaya ia kelihatan tetapi tidak mengambil ruang terlalu banyak. Pastikan ia berpusat di bahagian atas.

Duplikat butang Putar dua kali, buat kedua anak pendua Panel Keluar dan tukar Anchor, Position & Pivot dari salah satu butang ke Kiri Bawah. Tukar yang lain ke Bawah Bawah.

Tukar nama butang di Bawah Bawah ke Ya dan lakukan perkara yang sama dengan teks. Tukar bahagian bawah kiri ke kiri (nama dan teks).

Buka Skrip Menu anda dan tambahkan 2 butang di bawah butang belakang dan GameObject di bawah Panel Bantuan menggunakan kod di bawah:

 butang awam ya; butang awam tidak; 
 exitPanel GameObject awam; 

Tambah kod berikut dalam Fungsi Mula, di bawah helpPanel.SetActive (false); baris:

 exitPanel.SetActive (false); 

Tukar Fungsi ExitPress dari

 Application.Quit (); 

kepada

 exitPanel.SetActive (true); 

Kemudian tatal ke semua bahagian bawah skrip dan di bawah Fungsi BackPress () tambah kod berikut:

 void YesPress () {Application.Quit (); } public void NoPress () {exitPanel.SetActive (false); } 

Akhir sekali, kembali ke Perpaduan, klik pada butang Ya dan tukar Functions dari StartPress () ke YesPress () dan ubah butang Tiada ke NoPress (). Juga pastikan anda memberikan pemboleh ubah awam baru dalam skrip Kanvas Menu (klik pada kanvas Menu dan seret butang dan Panel ke bidang masing-masing). Sekarang tekan Main dan uji butang Keluar, ia mesti memuatkan Panel Keluar dan menutupnya apabila anda menekan butang Tiada. Seperti yang anda lihat, kaedah ini sedikit lebih lama tetapi menawarkan perlindungan jika pemain tidak sengaja mengklik butang Keluar. Jangan gunakan kaedah mana yang anda pilih.

Sekarang kita bergerak ke langkah terakhir, mewujudkan HUD, yang sangat asas dan terdiri daripada satu butang. Saya mungkin menambah tutorial lain yang meliputi HUD yang lebih luas (dengan slider kesihatan, kaunter skor dan menu jeda yang sebenarnya) tetapi pada masa ini, ini akan mencukupi.

Membuat & mengamalkan HUD

Kembali ke Adegan Utama anda dan buat kanvas baru. Labelkan Kanvas HUD & sediakannya dengan cara yang sama seperti Kanvas Menu Utama.

Tambah Objek Permainan Teks sebagai anak Kanvas, hubunginya Kembali ke Menu Utama dan sediakan fon, saiz dan penjajaran mengikut keinginan anda. Sebagai alternatif, anda boleh membuat salah satu Butang Menu Utama sebuah Prefab, kemudian seretnya ke Kanvas anda. Sebaik sahaja anda telah menetapkan butang itu, menukar Anchor, kedudukan dan pivot ke kiri bawah. Buat Skrip baru dipanggil HUD dan ketik kod berikut:

 menggunakan UnityEngine; / // Ruang nama ini diperlukan untuk menggunakan sebarang komponen UI menggunakan UnityEngine.UI; / // Ruang nama ini diperlukan untuk menggunakan SceneManager menggunakan UnityEngine.SceneManagement; menggunakan System.Collections; kelas awam HUD: MonoBehaviour {// Button public Button backToMainMenu; // Gunakan ini untuk permulaan tidak sah Mula () {} // Kemas kini dipanggil sekali per bingkai tidak sah Kemaskini () {} // Fungsi untuk BackToMainMenu Button, memuat Scene Menu skema awam BackToMainMenuPress () {SceneManager.LoadScene (0); }} 

Seret skrip ini ke Kanvas HUD, sediakan Skrip dengan cara yang sama seperti Menu Utama (dengan menyeret Objek Permainan Kembali ke Menu Utama dalam medan Kembali ke Menu Utama). Kemudian, setkan butang dengan menyeret Kanvas HUD ke dalam medan On Click (). Pilih fungsi BackToMainMenuPress dan menguji butang dengan mengklik ikon Main dan melihat jika ia membawa anda kembali ke Menu Utama.

Lampiran

  • Fineliner_Script.ttf Muat turun
  • Muat turun Postit-Penscript.otf

Langkah 9: Mengurus Hierarki

Ingat bagaimana saya berkata mencipta Objek Permainan Kosong akan membantu anda menyusun Hierarki? Nah, anda sudah melakukan itu dengan menggunakan kanak-kanak dan ibu bapa.

Bagaimanapun, Pemandangan Utama masih belum teratur. Kembali ke Adegan Utama dan buat Objek Permainan Kosong yang dilabelkan sebagai Kesan. Seret semua Letupan dan Laluan Permainan Objek ke skrip Kesan ini. Kemudian seret Kesan Permainan Kesan ini di bawah Skrip. Kamera Utama & Sistem Acara boleh kekal sebagai tempatnya.

Gunakan sistem ini untuk menyusun sebarang projek yang anda buat. Apa-apa jenis yang sama boleh berada di bawah Objek Permainan Kosongnya sendiri (contohnya, Pelbagai musuh boleh menjadi anak-anak dari Objek Permainan Musuh, Berbilang Kamera - Objek Permainan Kamera dan sebagainya.) Ini akan menjaga Hierarki anda kelihatan kemas dan akan menghalang diri anda daripada mendapatkan keliru jika anda membuat banyak Objek Permainan

Langkah 10: Kesimpulan

Phew. Itulah perjalanannya. Tetapi kami akhirnya sampai ke akhir (anda semua mungkin gembira dengan itu.) Tetapi sekarang anda mempunyai aplikasi berfungsi sepenuhnya yang boleh anda tunjukkan kepada rakan-rakan anda dan bertambah baik. Anda harus berbangga, seperti yang dinyatakan sebelum ini, ini adalah tutorial yang lebih maju. Jadi luangkan masa dan nikmati ciptaan anda.

Saya harap tutorial ini adalah bantuan. If you get stuck on anything, a good habit to get in to is searching Google for your error, then typing in Unity after it. Because Unity is so widely used, there is a lot of documentation available and there will most likely be at least one person who has had the same issue as you.

If you're not sure about any of the programming functions (void Update, void Start, public void etc.) then search for the function along with unity c# and check the official Unity documentation.

If you can't find an answer to your issues, you can leave a comment and i'll do my best to help you resolve the error.

If there is something you think I could add or if you want to learn how to program an actual game, feel free to leave a comment.

Thanks for taking the time to read this tutorial. Until next time!

Artikel Berkaitan