Consejos para organizar tus proyectos

Vi a una persona en Quora, el otro día, preguntando cómo los programadores son capaces de escribir proyectos que constan de más de 10.000 líneas de código. Cuando el software se hace más grande, es más difícil de mantener y eso es un hecho. Así que aquí está la cosa - si usted no mantiene su proyecto organizado, vas a tener difícil mantener el ritmo. Más tarde, se encontrará perdiendo el tiempo con un proyecto desordenado en lugar de añadir nuevas características. Esto también es cierto con respecto a cualquier proyecto de Unity3D. Éstos son (en mi opinión) los más importantes consejos que le ayudarán a mantener su proyecto organizado.

Estructura del Directorio

No podemos hablar de la organización sin mencionar la organización de la estructura de directorios del proyecto. Unity le da una total libertad en esa materia, pero debido a que, con frecuencia puede ser muy desordenado. Esta es la estructura de directorios que utilizo personalmente:

.
├── Alexandria
   └── moonantonio
├── Gizmos
├── Third party
   ├── Libreria externa
   └── Otros
├── Nombre proyecto
   ├── Resources
      ├── Animaciones
      ├── Audio
      └── Modelos
   ├── Shaders
   ├── Prefabs
   ├── Escenas
   └── Scripts
       ├── Mono
       └── Editor
└── Plugins
    ├── AURA
    └── GAIA

1.- No guarde los archivos de assets en el directorio raíz. Utilizar subdirectorios siempre que sea posible.

2.- No crear los directorios adicionales en el directorio raíz, a menos que realmente sea necesario.

3.- Sea consistente con el nombramiento. Utilizar nombres predictivos.

4.- No trate de mover assets del contexto específico que los directorios generales. Por ejemplo, si hay materiales generados a partir del modelo, no moverlos a Materiales porque después no sabrá de dónde viene esto.

5.- Utilice 3ª Party para almacenar los bienes importados desde el almacén de activos. Por lo general tienen su propia estructura que no debe ser alterada.

6.- Utilice recinto de seguridad del directorio para todos los experimentos. Mientras se trabaja en este tipo de cosas, la última cosa que desea tener en cuenta es una organización adecuada. Hagan lo que quieran, y luego quitarlo u organizar cuando usted está seguro de que lo desea incluir en su proyecto. Cuando estás trabajando en un proyecto con otras personas, crear el subdirectorio de recinto de seguridad personal como: Alexandria/moonantonio.

Estructura de la jerarquía de escena

Al lado de la jerarquía del proyecto también hay jerarquía de la escena. Al igual que antes, le presento una plantilla. Puede ajustarlo a sus necesidades.

  • Manager
  • GUI
  • Indispensables
  • Luces
  • Environment
  • Dinámicos

Hay varias reglas que debe seguir:

1.- Todos los objetos vacíos deben estar ubicados en 0,0,0 con la rotación y la escala predeterminada.

2.- Mantén siempre la jerarquía aun instanciando objetos.

3.- Para los objetos vacíos que sólo son contenedores para los scripts, el uso de “@” como prefijo - por ejemplo @Cheats

Usar prefabs para todo

Los Prefabs en Unity3D no son perfectos, pero son lo mejor que encontrará en jerarquías preconfiguradas de objetos. En términos generales, intentar crear prefabs de todo lo que se pone en sus escenas. Usted debe ser capaz de crear un nuevo nivel de una escena vacía simplemente añadiendo uno o más prefabs.

La razón por la que debe usar los prefabs es que cuando cambias un prefabs, todos los prefabs cambian también. ¿Si tienes 100 niveles y desea agregar un efecto de cámara en todos ellos? ¡No es un problema! Si la cámara es un prefabs, basta con añadir un efecto de cámara a la cámara prefab!

Tenga en cuenta que no se puede tener un prefab en otro prefab.

Aprende a usar el sistema de control de versiones (VCS)

Usted ya sabe algo acerca de GIT, subversión o cualquier otro VCS por ahí. Como cuestión de hecho, “saber algo” es sólo una pequeña parte de lo que usted puede aprender. Usted debe centrarse en el aprendizaje acerca de las características mas importantes de uso poco frecuente de VCS de su elección. ¿Por qué? Sobre todo porque los sistemas de control de versiones son mucho más potentes de lo que usted piensa, y por desgracia muchos usuarios están utilizando estos como nada más que una copia de seguridad y soluciones sincronizadas. Por ejemplo, ¿sabía que le permite GIT guardar los cambios, para que pueda trabajar en ellos más adelante sin enviar cualquier cosa a su rama principal?

Los programadores suelen comentar bloques de código en caso de que sea necesario más adelante. No hagas eso! Si está utilizando VCS, aprenda a navegar rápidamente a versiones anteriores de un archivo. Cuando esté familiarizado con ella, su código sera mucho más agradable sin un bloque innecesario de código comentado.

Aquí hay un buen recurso de consejos para los usuarios GIT: http://gitready.com/

Aprender a escribir scripts del editor

Unity3D es un gran motor de juego en materia de extensibilidad. Aprender a escribir scripts del editor. Sí es necesario, no es necesario crear GUI de lujo para los scripts, puede ser algo simple, como las entradas de menú que están haciendo algo útil.


/img/ref.png
.