Al crear un nuevo proyecto, es tan limpio, comprensible, no hay basura en exceso ... está vacío. Cuanto más tiempo se lleva a cabo el desarrollo, más basura sobrante, carpetas oscuras, aparecen archivos, a veces los prefabricados para otros proyectos pueden llegar allí y toda la organización vuela a Tartar.
Resulta que la organización nunca ha estado, el proyecto tiene tres años, es demasiado tarde para poner las cosas en orden, no es conveniente trabajar y en general ...
Bienvenido al caos, estás aquí porque:- nunca pensé por qué necesitas una estructura de proyecto en Unity
- tus proyectos tienen un desastre eterno y quieres deshacerte de él
- en busca de nuevas formas de organizar
- perdió la esperanza de poner las cosas en orden en su proyecto
Tarde o temprano tomará una decisión y será más adecuada para usted, solo puedo ayudarlo en la búsqueda y ofrecerle sus opciones. Veremos algunos ejemplos, analizaremos y elaboraremos la solución más adecuada. También hablaremos sobre la estructuración, la jerarquía y los nombres propios, y cómo los pedidos ayudan a acelerar las cosas.
Bienvenido a cat.Gracias a todos los que leyeron mi
material anterior. Fueron los comentarios debajo de él los que me impulsaron a escribir este artículo. Más informativo y útil, con una introducción romántica pero con contenido práctico. Hoy hablaremos de cosas bastante obvias, si hay algo que agregar, siéntase libre de escribir y ofrecer sus propias opciones.
Al punto
¿Por qué necesitamos una estructura? - tiempo. Ahorramos mucho tiempo en la depuración, agregando nuevas funciones, archivos, limpieza, siempre que nuestra organización sea clara y conveniente para nosotros, siempre que lo sea. Los nombres de archivo correctos, el orden, las etiquetas y otros pequeños trucos pueden ahorrar tiempo.
La red tiene suficientes materiales similares con ejemplos, pero no muchas explicaciones de "por qué esto es así". Describiré las soluciones que uso yo mismo y cómo son convenientes específicamente para mí. No creo que traiga algo nuevo, pero la organización correcta es el comienzo del comienzo de cualquier proyecto.
"¿Cómo se hace?"
Tomemos, por ejemplo, colisionadores para el medio ambiente. ¿Qué objetos y planos tenemos?
- género
- las paredes
- obstáculos (cajas, barriles, piedras, etc.)
- el techo
En la jerarquía de la escena, podemos poner todo esto en un solo
objeto del juego , pero será un inconveniente buscar.
Por lo tanto, crearemos un
objeto de juego separado para colisionadores de piso, paredes, techo y obstáculos.
Como ejemplo, el nivel del juego.
Si tenemos más de 10 hijos, entonces recomiendo escribir una etiqueta, esto simplifica la búsqueda. Nuevamente, colisionadores, si estamos hablando de 2D, entonces se usa borde, polígono, caja, círculo y cada uno puede ser un colisionador de plano o obstáculo. Puede llamarse
"coll_edge_N" o
"coll_e_N" porque los colisionadores de pared tienen un objeto de
pared primario (que a su vez tiene un objeto primario de
colisionador ) surge la pregunta de si se debe escribir una etiqueta del plano
"coll_wall_edge_N" , para una búsqueda simplificada, cuando el número de objetos es grande, usted Ahorre mucho tiempo.
Obtenemos algo similar.
Organizar carpetas en UnityEl proyecto también tiene reglas bastante claras.
A saber:
- debería quedar claro dónde está la mentira
- Está claro dónde agregar nuevos archivos y fuentes
- estructura adaptativa y confortable
- la estructura no es demasiado compleja ni aplastada
Por supuesto, puede tirar cualquier cosa y en cualquier lugar sin pensar en la organización.
Como asi
Puedes hacer algo más organizado con una estructura clara.
Algo asi
Ahora veamos qué se necesita, qué no.
Es muy conveniente dividir el proyecto en
activos internos y
activos externos , esto es una ventaja.
En
activos externos , tenemos todos los activos de terceros y nada más.
Hay una carpeta de
escena separada en la que se encuentran todas las escenas.
La carpeta de
scripts también está separada, es más conveniente.
La carpeta más interesante para nosotros son
los activos internos.Todo lo relacionado con la parte visible de nuestro juego se encuentra allí.

¿Qué carpetas se necesitan allí?
- Carpeta principal de prefabricados para todos los prefabricados
- Texturas / Sprites para quienes es más conveniente y dependiendo de si se trata de un proyecto 2D o 3D
- Materiales materiales aquí y todo está claro
- Shaders de manera similar, pocas preguntas
- Animaciones
- Vfx
- El sonido aquí es una organización simple en la carpeta misma y la separación de sonidos en BGM, Impact FX, etc.
Como artista de efectos visuales y artista de animación 2D / 3D, me detendré en más detalles sobre la organización de estas carpetas en particular.
Para la animación de la unidad, necesitamos hacer que el
animador controle y
el clip de animación , hay varios clips de animación, por lo que es más conveniente colocarlos en una carpeta. Además, necesita una carpeta para la unidad misma.
Se verá así.
Es conveniente
Ahora sobre VFXEn la carpeta con vfx necesita las
texturas de la carpeta,
materiales y, opcionalmente,
prefabricados . Es más conveniente para un artista de efectos visuales trabajar en sus carpetas y no perder el tiempo en todo el proyecto, sino mantener el orden en su jardín. Las texturas para los efectos son siempre texturas. Los materiales para efectos tienen diferentes configuraciones de
aditivo a
mezcla alfa, y a veces una textura va a varios materiales, si la carpeta de texturas está cerca, entonces la búsqueda es más fácil. Si está escribiendo sombreadores, es más conveniente extraer texturas de la carpeta
VFX ; también es más conveniente y lógico colocar los materiales del sombreador terminado en
VFX.¿Por qué necesito una carpeta Papelera?
A menudo necesita eliminar algo, no el hecho de que puede hacerlo y todo saldrá bien, a menudo se pierde algo y si no es el programador principal del proyecto, puede hacerlo. También es necesario probar una característica / idea y no el hecho de que arraigará y que generalmente se necesita. Para eso está la carpeta de la
papelera , todas las pruebas, todo lo que necesita ser eliminado o todo lo que no desea enviar con la confirmación actual es mejor poner aquí e ignorar para el gita.
Organizando una jerarquía en UnityUn poco más arriba fue un ejemplo de colisionadores. Esta regla obedece todo. En nuestro proyecto, aplicamos tal solución.

Acabamos de agregar
"--- nombre del capítulo ---" este es un objeto vacío que lleva solo el nombre. Parece ser algo inútil y superfluo, pero a veces simplifica la búsqueda y la comprensión de la jerarquía en el escenario. Una solución tan simple le permite acelerar la búsqueda visual varias veces. Por ejemplo, tenemos un objeto de oponentes, podemos complicar y hacer varios objetos secundarios para cada tipo de enemigo y separarlos para los jefes, además de hacer una etiqueta para cada enemigo. Y podemos hacer un objeto madre para los oponentes que vuelan, designar el símbolo
^ ,
$ fuerte y el jefe designar como
% . Para los colisionadores, esta solución no es muy conveniente, pero para los oponentes y su separación visual en la jerarquía, está bien.
Organización por el ejemplo de la columna vertebralCuando hablamos de animación 2D o 3D, la importancia de la organización y los nombres va a un nivel diferente. Puede recurrir al mocap de animación y no preocuparse por la organización, sino simplemente hacer los movimientos necesarios en el estudio y hacer la final allí mismo, desafortunadamente, esto no siempre sucede. Hay muchas cosas que deben modificarse manualmente incluso al capturar movimiento, pero no estamos hablando de eso. ¿Cómo corregir todos los movimientos, determinar el punto deseado, hueso, cuando hay más de 20? Una persona simple con 5 huesos no será difícil de organizar y comprender las conexiones, y ahora agregarle 10 dedos, es
más difícil, ¿verdad?Las reglas son las mismas, pero en la animación hay dependencias y huesos secundarios que simplifican la organización. Además, para la percepción visual, se usa un cambio en el color de los huesos. Siempre hay un hueso clave al que están unidos otros huesos, a estos huesos todavía hay huesos y así sucesivamente hasta el final. A menudo lo llamamos simplemente
Raíz , las caderas o el torso van más lejos, la mano izquierda o derecha del torso, y así sucesivamente. Con los nombres, es más fácil para nosotros entender qué y dónde.
Y aquí hay un ejemplo de resaltado, ayuda en el trabajo (por ejemplo,
Dragon Bones )

Reglas principales
- claridad de nombres
- conveniencia
- enfoque razonable
Conclusión
Los ejemplos son solo mis ejemplos. Solo una cosa es obvia y segura: nombres, estructura, orden, para cada uno lo suyo, pero comprensible para las personas con las que trabaja, nadie recogerá sus escombros. Las grandes empresas suelen ser más exigentes con la organización, cuanto antes aprenda a mantener el orden, más fácil será para usted en el futuro.
No voy a contratar una campaña de limpieza, te di una escoba, úsala.
Comentarios
Leopotam"ExternalAssets" es el camino a la nada si necesita no solo agregar activos, sino también actualizarlos. La solución más correcta y simple es aislar los activos del proyecto local (en el artículo es "InternalAssets") y almacenar los activos externos como los autores los prepararon, idealmente, en carpetas separadas en el nivel de carpeta "InternalAssets". En este caso, la actualización se vuelve fácil y simple, no necesita ordenar por carpetas personalizadas lo que puede venir en la actualización y lo que no existía antes. Además, hay carpetas especiales que no se pueden mover y que solo pueden estar en la raíz (Gizmos, Plugins / Android, Plugins / iOS, etc.).