
Selamat siang, Khabarovsk sayang!
Setiap pengembang ingin membuat gimnya sendiri lebih cepat, tetapi bagaimana cara melakukannya? Artikel ini membahas keterampilan dasar untuk mengurangi waktu pengembangan dalam lingkungan Persatuan.
Keterampilan # 1 - Bekerja dengan struktur proyek
Untuk menjaga ketertiban dalam proyek, Anda perlu memahami strukturnya. Itu dapat direpresentasikan sebagai berikut:
- Model - menyimpan semua model yang digunakan dalam proyek
- Rak itan - menyimpan semua templat model
- Tekstur - menyimpan semua tekstur
- Bahan - menyimpan semua bahan
- Skrip - menyimpan semua skrip
- Suara - menyimpan semua suara
- Animasi - menyimpan semua animasi
Jika Anda memiliki objek yang kompleks, misalnya karakter, folder terpisah dibuat untuknya, di mana struktur di atas diulang.
Struktur folder karakterPendekatan lain adalah dengan membuat folder yang dijelaskan di atas, dan untuk menempatkan bagian-bagian dari objek di setiap folder, yaitu, struktur berikut akan digunakan untuk animasi karakter.
Struktur folder animasiSkill # 2 - Bekerja dengan hierarki objek dalam adegan
Untuk menyederhanakan bekerja dengan set objek yang identik, mereka dapat digabungkan ke dalam kelompok di mana objek kosong bertindak sebagai orangtua.
Ini akan membantu dengan mudah mematikan lampu di seluruh lokasi atau di dalam ruangan. Cari tahu lokasi semua objek.
Setiap elemen dipanggil relatif terhadap apa adanya, pada akhirnya postfix dari objek induk ditambahkan. Misalnya, bilah emas di gua akan disebut "goldBar_cv1", di mana cv1 berarti cave1, dan pohon di hutan "tree_frt1", di mana frt1 berarti forest1. Untuk postfix, diambil huruf pertama dari kata tersebut, huruf pertama dari suku kata kedua dan huruf terakhir dari kata tersebut.
Contoh hierarki objek pada adeganKeahlian # 3 - Bekerja dengan presentasi visual
Unity memiliki 3 sumber cahaya utama:
- Directional Light - analog Matahari
- Point Light - analog dari bohlam
- Spotlight - analog dengan senter
Jika ada cahaya, maka harus ada sumber cahaya. Sebagai contoh, di sebuah gua tidak bisa terang jika karakter tidak memiliki obor (untuk obor, lampu sorot cocok).
Gunakan PostProcessing untuk menerapkan efek.
Adegan tanpa post-processing
Adegan Pasca PemrosesanUPD dari
thenonsense :
Selain sumber cahaya yang disajikan secara visual, ada juga pengaturan cahaya global: tab di bagian atas Jendela , item Pencahayaan , sub-item Pengaturan . Di sana Anda dapat, misalnya, memperketat pencahayaan lingkungan, memasang skybox, menambahkan kabut. Sebenarnya, di sinilah Anda perlu melihat apakah Anda bertanya pada diri sendiri pertanyaan "menghapus semua sumber cahaya, tetapi semuanya sama saja di atas panggung seperti di siang hari". Ngomong-ngomong, Anda bisa masuk ke pengaturan ini saat permainan sedang berjalan di editor sehingga Anda dapat langsung melihat perubahan dengan cepat. Namun, setelah menutup mode gim, pengaturan akan kembali ke keadaan semula sebelum dimulainya tes gim. Jadi, Anda harus naik ke jendela ini lagi dan menyesuaikan nilainya. Detail yang berguna - jika, misalnya, Anda ingin mengubah warna pencahayaan (warna Ambient dalam grup Lighting Environment), lalu pada panel dengan palet memperhatikan item Hexadecimal - jumlah warna saat ini ditunjukkan di jendela, Anda dapat menyalinnya dan menempelkannya ke bidang yang sama nanti saat mode permainan dimatikan. Trik yang sama berguna untuk mengatur warna kabut dan sebagainya.
Demikian pula, saat berjalan dalam mode permainan, Anda dapat mengubah beberapa parameter objek melalui editor - nilai skrip variabel dipindahkan ke zona visibilitas, aktifkan / nonaktifkan rendering objek mesh, dan sebagainya. Hal utama adalah tidak terbawa sehingga tidak merusak sesuatu. Setelah mode permainan dimatikan, nilai yang diubah akan dikembalikan. Ini tidak berlaku untuk beberapa elemen individu, misalnya, jika Anda mengedit tekstur medan dalam mode permainan, perubahannya akan disimpan.
Keahlian # 4 - Bekerja dengan kamera
Perlu menemukan objek di atas panggung? Klik 2 kali pada nama objek dalam hierarki.
Ingin terbang melintasi panggung dari 1 orang? Tahan RMB dan bergerak dengan tombol WASD, Pergeseran akselerasi.
Ingin melihat pemandangan dari sudut yang berbeda? Manfaatkan Gizmos (Gizmos).
Lokasi GizmoSkill # 5 - Bekerja dengan objek
Ingin menambahkan karakter ke adegan? Tambahkan komponen RigidBody dan CapsuleCollaider. RigidBody memberi tahu mesin bahwa fisika keadaan padat harus diterapkan ke objek ini.
Ingin memeriksa tabrakan karakter dengan objek? Tambahkan komponen MeshCollaider ke objek dan dalam skrip karakter di fungsi OnCollisionEnter periksa tag objek yang karakternya temui.
Contoh implementasi pengecekan tabrakan karakter dengan objekprivate void OnCollisionEnter(Collision collision) { switch (collision.gameObject.tag) { case "Moneys": Destroy(collision.gameObject);
UPD dari
thenonsense :
Itu tidak selalu diperlukan untuk karakter untuk menggunakan benda tegar, metode manajemen mungkin berbeda. Tetapi collider untuk sebuah karakter akan dibutuhkan hampir selalu, kecuali Anda akan menghitung collision dengan cara yang lebih rumit. Unity juga memiliki beberapa pengontrol / colliders khusus - lebih baik membaca dokumentasi untuk memahaminya secara lebih rinci. Tetapi lebih baik mulai dengan contoh sederhana di YouTube.
Adapun benda-benda yang bertemu karakter. Mesh Collider biasanya digantung pada benda-benda yang bentuknya rumit itu penting untuk Anda pertimbangkan tabrakan. Jika itu hanya sebuah tombol, lebih baik bergaul dengan collider yang lebih sederhana seperti Box Collider. Selain itu, Anda mungkin harus membuat kotak tumbukan yang lebih sederhana dan tidak terlihat untuk objek 3D yang kompleks dan menggantung Mesh Collider di atasnya, dan bukan pada objek yang terlihat itu sendiri.
Tentang tombol collider, perlu diingat bahwa dalam komponen collider mereka, Anda perlu memeriksa kotak Is Trigger sehingga skrip dapat menangani event klik. Komponen benda tegar harus ditetapkan untuk barel, kotak, dan benda lain yang harus secara fisik indah bereaksi terhadap tabrakan dan jatuh di bawah pengaruh gravitasi.
Keahlian # 6 - Model Impor
Pertimbangkan prosedur menggunakan contoh mengimpor model dari Blender. Diasumsikan bahwa Anda telah melakukan pemindaian, menerapkan tekstur atau bahan yang dipilih.
- Posisikan model dalam koordinat nol (pusat relatif terhadap sumbu)
- Tetapkan Skala ke Satu
- Hapus benda yang tidak perlu (kamera, sumber cahaya)
- Simpan model dalam format .fbx
- Transfer file ke Unity
- Tarik ke folder - Model ke Model, Bahan ke Bahan, dll.
- Buat model cetakan
- Bekerja lebih jauh dengan cetakan
UPD dari
thenonsense :
Blender
Harap dicatat bahwa jika bahan blender ditugaskan untuk model, maka mereka akan ditransfer dalam bentuk yang disederhanakan dan akan mengacaukan daftar bahan.
Anda tidak perlu melakukan pengembangan dan tekstur yang kompleks di Blender sama sekali - cara yang lebih mudah adalah dengan menelusuri semua elemen model dan memilih item Data di jendela di sebelah kanan. Ini adalah ikon dalam bentuk segitiga yang melihat ke bawah dengan tiga titik antara item Pengubah (kunci pas) dan Material (bola merah muda). Di dalamnya, klik + di sebelah grafik UV Maps - muncul pemindaian otomatis dengan ikon bola catur. Ini perlu dilakukan untuk setiap elemen model dan hanya kemudian ekspor. Maka sudah di Unity akan mungkin untuk menerapkan bahan dengan tekstur ubin untuk bagian ini, dan jika ini tidak dilakukan, maka bahan hanya akan mengecat bagian dalam warna solid. (Jika nanti Anda mendeformasi elemen model, maka buang sweep dan tetapkan kembali sehingga tidak ditarik).
Jika model Anda terdiri dari elemen yang berbeda, maka sudah di Unity Anda dapat memindahkan elemen individual dari model Anda atau menonaktifkannya. Ini dapat bermanfaat dalam berbagai situasi.
Bagaimana cara texturize model dengan cara yang sederhana.
Sebagai permulaan, beberapa 512 hingga 512 ubin tekstur sudah cukup. Tambahkan dengan cara yang sama seperti model 3D melalui Impor Aset Baru (ingat bahwa folder yang sesuai harus dipilih). Pada saat yang sama, di sebelah kanan, di inspektur, di tekstur yang ditambahkan di jendela Default , atur parameter Max Size ke 512. Dan kemudian klik Apply . Sekarang tekstur siap untuk menambahkannya ke bahan atau, katakanlah, sekarang dapat dicat terrane. Perhatikan poin pertama - Jenis Tekstur, sekarang berada dalam mode default, tetapi ketika Anda perlu memuat peta normal, gambar untuk sprite transparan, dan sebagainya, Anda perlu mengatur pengaturan yang sesuai di sana.
Selanjutnya kita perlu membuat materi. Kita kembali ke menu di atas - Aset , daftar drop-down Buat , Bahan (sekali lagi, jangan lupa bahwa materi akan dibuat dalam folder yang saat ini dipilih). Anda mengemudi atas nama bahan dan di inspektur membuka item Albedo (sampai kami berhenti pada parameter lain, tetapi prinsipnya serupa), di mana Anda mencari dan menetapkan tekstur yang sebelumnya dimuat. Di dekatnya ada jendela warna yang juga dapat mewarnai tekstur Anda, serta slider Metalic dan Smoothness untuk menambah silau atau kusam. Parameter ukuran ubin juga berguna, itu adalah beberapa baris di bawah ini.
Setelah materi dibuat, Anda dapat mengambilnya dan melemparkannya langsung ke model atau elemen-elemennya, jangan sampai ketinggalan, jika tidak catlah yang tidak Anda butuhkan.
Jangan lupa bahwa tekstur yang sama dapat digunakan pada bahan yang berbeda. Misalnya, dengan kotoran dengan warna berbeda dan / atau ukuran ubin berbeda.
Rak itan.
Biasanya prefab dilakukan seperti ini - mereka menyeret objek ke tempat kejadian, lalu mengaitkan namanya di jendela hierarki dan menyeretnya ke folder. Kemudian akan muncul prefab berdasarkan objek, di inspektur prefab akan memiliki ikon kubus biru dan akan ditandatangani di bawah tag, Prefab.
Namun, Anda tidak perlu segera melakukan semuanya dengan cetakan. Anda bisa melempar objek pada adegan, lalu mengkloningnya dengan copy-paste dan mengujinya seperti itu. Jika semuanya sesuai dengan Anda, maka transfer objek ke cetakan, jika tidak, misalnya, bug telah muncul dalam model, kemudian hapus salinannya dari tempat kejadian, model itu sendiri dari folder, perbaiki dalam paket 3D dan impor lagi.
Anda juga dapat mendorong beberapa elemen anak baru di dalam cetakan di atas panggung. Namun, mereka tidak akan menjadi bagian penuh dari itu, yaitu, mereka tidak akan mempengaruhi salinan cetakan lain ini sampai Anda mengklik tombol Terapkan di inspektur pada baris dengan nama cetakan.
Keahlian # 7 - Implementing Logic
Hindari operasi yang mahal. Contohnya adalah menentukan jarak ke objek.
Contoh Pengoperasian yang Mahal using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform other; void Example() { if (other) {
Contoh Implementasi Lebih Cepat using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform other; public float closeDistance = 5.0f; void Update() { if (other) { Vector3 offset = other.position - transform.position;
Baca lebih lanjut tentang operasi mahal di
sini .
Kesimpulan
Keterampilan di atas akan secara signifikan mengurangi waktu selama pengembangan dan selama dukungan proyek.
Jika Anda berpikir bahwa beberapa topik diungkapkan secara dangkal, silakan tulis komentar tentang hal itu secara lebih rinci.