Dari kekacauan hingga memesan, atau "buat struktur proyek di Unity dan bukan hanya ..."

Saat membuat proyek baru, itu sangat bersih, dapat dimengerti, tidak ada kelebihan sampah ... itu kosong. Semakin lama pengembangan berlangsung, semakin banyak sampah, folder tidak jelas, file muncul di dalamnya, kadang-kadang cetakan untuk proyek lain bisa sampai di sana dan seluruh organisasi terbang ke Tartar.

Ternyata organisasi itu belum pernah ada, proyek ini berumur tiga tahun, sudah terlambat untuk membereskan semuanya, tidak nyaman untuk bekerja dan secara umum ...

Selamat datang di kekacauan, Anda di sini karena:

  • tidak pernah berpikir mengapa Anda memerlukan struktur proyek di Unity
  • proyek Anda memiliki kekacauan abadi dan Anda ingin menyingkirkannya
  • mencari cara baru untuk berorganisasi
  • kehilangan harapan untuk membereskan proyek mereka

Cepat atau lambat Anda akan mengambil keputusan dan akan sangat cocok untuk Anda, saya hanya dapat membantu dalam pencarian dan menawarkan opsi Anda. Kami akan melihat beberapa contoh, menganalisis dan menyusun solusi yang paling tepat. Kami juga akan berbicara tentang penataan, hierarki dan nama yang tepat, dan bagaimana pemesanan membantu mempercepat.



Selamat datang di kucing.

Terima kasih kepada semua orang yang membaca materi saya sebelumnya. Komentar di bawahnya itulah yang mendorong saya untuk menulis artikel ini. Lebih informatif dan bermanfaat, dengan pengantar romantis tetapi konten praktis. Hari ini kita akan membicarakan hal-hal yang cukup jelas, jika ada sesuatu untuk ditambahkan, jangan ragu untuk menulis dan menawarkan pilihan Anda sendiri.
Ke intinya.
Mengapa kita membutuhkan struktur? - waktu. Kami menghemat banyak waktu untuk debugging, menambahkan fitur baru, file, pembersihan, asalkan organisasi kami jelas dan nyaman bagi kami, asalkan itu. Nama file, urutan, tag, dan trik kecil lainnya yang benar dapat menghemat waktu.
Jaringan memiliki cukup banyak bahan yang mirip dengan contoh, tetapi tidak terlalu banyak penjelasan tentang "mengapa demikian." Saya akan menjelaskan solusi yang saya gunakan sendiri dan bagaimana mereka nyaman khusus untuk saya. Saya tidak berpikir bahwa saya akan membawa sesuatu yang baru, tetapi organisasi yang tepat adalah awal dari awal setiap proyek.

"Bagaimana caranya?"


Ambil contoh colliders untuk lingkungan. Benda dan pesawat apa yang kita miliki?

  • jenis kelamin
  • dinding
  • rintangan (kotak, tong, batu, dll.)
  • langit-langit

Dalam hierarki adegan, kita bisa meletakkan ini semua dalam satu objek game , tetapi tidak akan nyaman untuk dicari.

Oleh karena itu, kami akan membuat objek permainan terpisah untuk penabrak lantai, dinding, langit-langit dan rintangan.

Sebagai contoh, level dari game



Jika kami memiliki lebih dari 10 anak, maka saya sarankan untuk menulis tag, ini mempermudah pencarian. Sekali lagi, colliders, jika kita berbicara tentang 2D maka edge, polygon, box, circle digunakan dan masing-masing dapat menjadi collider bidang atau penghalang. Ini dapat disebut "coll_edge_N" atau "coll_e_N" karena collider dinding memiliki objek induk Wall (yang pada gilirannya memiliki objek induk Colliders ) muncul pertanyaan apakah akan menulis tag pesawat "coll_wall_edge_N" , untuk pencarian yang disederhanakan, ketika jumlah objek besar, Anda menghemat banyak waktu.

Kami mendapatkan sesuatu yang serupa.





Mengatur folder di Unity

Proyek ini juga memiliki aturan yang cukup jelas.

Yaitu:

  • harus jelas di mana letaknya
  • jelas di mana menambahkan file dan sumber baru
  • struktur adaptif dan nyaman
  • strukturnya tidak terlalu rumit dan tidak hancur

Tentu saja, Anda dapat melempar apa saja dan ke mana saja tanpa memikirkan organisasi.

Seperti itu



Anda dapat melakukan sesuatu yang lebih terorganisir dengan struktur yang jelas.

Sesuatu seperti itu



Sekarang mari kita lihat apa yang dibutuhkan, apa yang tidak.

Sangat mudah untuk membagi proyek menjadi aset internal dan aset eksternal , ini merupakan nilai tambah.
Dalam aset eksternal , kami memiliki semua aset pihak ketiga dan tidak lebih.
Ada folder Scene terpisah di mana semua adegan berada.
Folder skrip juga terpisah, lebih nyaman.
Folder yang paling menarik bagi kami adalah aset internal
Segala sesuatu tentang bagian yang terlihat dari permainan kami ada di sana.



Folder apa yang dibutuhkan di sana?

  • Folder utama cetakan untuk semua cetakan
  • Tekstur / Sprite kepada siapa lebih nyaman dan tergantung pada apakah proyek 2D atau 3D
  • Bahan material di sini dan semuanya jelas
  • Shader juga memiliki beberapa pertanyaan
  • Animasi
  • Vfx
  • Sound di sini adalah organisasi sederhana di folder itu sendiri dan pemisahan suara menjadi BGM, Impact FX, dll.

Sebagai VFX Artist dan artis animasi 2D / 3D, saya akan membahas lebih rinci tentang pengaturan folder tertentu ini.

Untuk animasi unit, kita perlu membuat animator control r dan klip animasi , ada beberapa klip animasi, jadi lebih mudah untuk meletakkannya di folder. Plus, Anda memerlukan folder untuk unit itu sendiri.

Ini akan terlihat seperti ini.


Itu nyaman
Sekarang tentang VFX

Dalam folder dengan vfx Anda memerlukan tekstur folder, bahan dan cetakan tambahan. Lebih nyaman bagi artis VFX untuk bekerja di folder mereka dan tidak mengacaukan seluruh proyek, tetapi untuk menjaga ketertiban di kebunnya. Tekstur untuk efek selalu tekstur. Bahan untuk efek memiliki pengaturan berbeda dari aditif ke campuran alfa, dan kadang-kadang satu tekstur pergi ke beberapa bahan, jika folder tekstur di dekatnya, maka pencarian lebih mudah. Jika Anda menulis shader, maka menarik tekstur dari folder VFX lebih nyaman, juga lebih nyaman dan logis untuk memasukkan materi shader jadi ke VFX.
Mengapa saya perlu folder Sampah?

Seringkali Anda perlu menghapus sesuatu, bukan fakta bahwa Anda dapat melakukannya dan semuanya akan berjalan dengan lancar, seringkali ada sesuatu yang hilang dan jika Anda bukan programmer utama dalam proyek tersebut, maka Anda dapat melakukannya. Ada juga kebutuhan untuk menguji fitur / ide dan bukan fakta bahwa itu akan berakar dan umumnya diperlukan. Ini adalah tujuan folder sampah , semua tes, semua yang perlu dihapus atau semua yang Anda tidak ingin kirim dengan komit saat ini lebih baik untuk ditempatkan di sini dan mendaftar untuk mengabaikan gita.

Mengatur hierarki dalam Unity

Sedikit lebih tinggi adalah contoh tentang colliders. Aturan ini mematuhi segalanya. Dalam proyek kami, kami menerapkan solusi seperti itu.



Kami baru saja menambahkan "--- nama bab ---" ini adalah objek kosong yang hanya membawa nama. Tampaknya menjadi hal yang tidak berguna dan berlebihan, tetapi itu menyederhanakan pencarian dan pemahaman tentang hierarki di atas panggung pada waktu-waktu tertentu. Solusi sederhana semacam itu memungkinkan Anda mempercepat pencarian visual beberapa kali. Misalnya, kita memiliki objek lawan, kita dapat menyulitkan dan membuat beberapa objek anak untuk setiap jenis musuh dan terpisah untuk bos, ditambah membuat tag untuk setiap musuh. Dan kita bisa membuat satu ibu objek untuk lawan terbang, lambang simbol ^ , $ kuat, dan bos menunjuk sebagai % . Untuk colliders, solusi ini tidak terlalu nyaman, tetapi untuk lawan dan pemisahan visual mereka dalam hierarki - baik-baik saja.

Organisasi dengan contoh Spine

Ketika kita berbicara tentang animasi 2D atau 3D, pentingnya organisasi dan nama mengarah ke level yang berbeda. Anda dapat menggunakan mocap animasi dan tidak khawatir tentang organisasi, tetapi hanya membuat gerakan yang diperlukan di studio dan membuat final di sana, sayangnya, ini tidak selalu terjadi. Ada banyak hal yang perlu dimodifikasi secara manual bahkan ketika menangkap pergerakan, tetapi kita tidak membicarakannya. Bagaimana cara memperbaiki semua gerakan, menentukan titik yang diinginkan, tulang, ketika ada lebih dari 20? Seseorang yang sederhana dengan 5 tulang tidak akan sulit untuk mengatur dan memahami koneksi, dan sekarang tambahkan 10 jari padanya, itu lebih sulit, kan?

Aturannya sama, tetapi dalam animasi ada ketergantungan dan tulang anak yang menyederhanakan organisasi. Juga, untuk persepsi visual, perubahan warna tulang digunakan. Selalu ada tulang kunci yang melekat tulang lain, ke tulang-tulang ini masih ada tulang dan seterusnya sampai akhir. Seringkali kita menyebutnya Root , pinggul atau batang tubuh lebih jauh darinya, tangan kiri atau kanan dari batang tubuh, dan seterusnya. Dengan namanya, lebih mudah bagi kita untuk memahami apa dan di mana.

Tetapi contoh penyorotan, membantu dalam pekerjaan (misalnya, Tulang Naga )



Aturan utama


  • kejelasan nama
  • kenyamanan
  • pendekatan yang masuk akal

Kesimpulan


Contoh hanyalah contoh saya. Hanya satu hal yang jelas dan pasti - nama, struktur, urutan, untuk masing-masing miliknya, tetapi dapat dimengerti oleh orang-orang yang bekerja dengan Anda, tidak ada yang akan menyapu puing-puing Anda. Perusahaan-perusahaan besar seringkali lebih menuntut organisasi, semakin cepat Anda belajar menjaga ketertiban, semakin mudah bagi Anda di masa depan.
Saya tidak akan menyewa Anda kampanye pembersihan, saya memberi Anda sapu, gunakan itu.


Komentar



Leopotam
"ExternalAssets" adalah cara ke mana-mana jika Anda tidak hanya perlu menambahkan aset, tetapi juga memperbaruinya. Solusi yang paling benar dan sederhana adalah dengan mengisolasi aset proyek lokal (dalam artikel ini adalah "InternalAssets"), dan menyimpan aset eksternal ketika penulis menyiapkannya - idealnya, dalam folder terpisah di tingkat folder "InternalAssets". Dalam hal ini, pembaruan menjadi mudah dan sederhana, Anda tidak perlu menyortir berdasarkan folder khusus apa yang bisa datang dalam pembaruan dan yang tidak ada sebelumnya. Selain itu, ada folder khusus yang tidak dapat dipindahkan dan yang hanya dapat di root (Gizmos, Plugins / Android, Plugins / iOS, dll.).

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


All Articles