Está en la página 1de 3

Buenas Prcticas de programacin Unity

En escena, usar objetos vacos como carpetas, para organizar y agrupar objetos
relacionado

Colocar los objetos de limpieza,y objetos vacos en posicin 0,0,0 , evita en muchos
casos evitar malentendidos entre world y local space

Componentes de GUI, procurar tenerlos ene el origen, para no tener que corregir
posicin local en sus hijos

Mantener el piso del mundo en y=0, mas fcil conceptualmente para colocar objetos
en suelo, y juegos en 2D,lgica de juego fsicas,IA, etc.

Hacer cada escena jugable, reduce el tiempo de testing, necesitas

Alguna forma de proveer toda la informacin que requiere la escena al comienzo

Los objetos spawneables que deben persistir entre carga de escenas deben tratarse de esta
manera:
myObject = FindMyObjectInScene();
if (myObjet == null)
{
myObject = SpawnMyObject();
}

Colocar los pivotes en la base, no en el centro. facilita colocar los caracteres en el piso

Que todos los meshes volteen hacia la misma direccin. simplifica varios algoritmos,

Mantn misma escala en todos los objetos desde el principio, que sus transforms sean
escalados a 1,1,1, usar un objetos referencia, cubo para hacer comparaciones de
escala mas fciles

Hacer un plano de fondo (como plano verde de fondo),para probar componentes GUI
y partculas hechas a mano.

Hacer y usar, arte de prueba.

cuadros para skyboxes

una malla

colores mate para pruebas de shaders,


blanco,negro,rojo,azul,amarillo,magenta,cyan

colores gradientes : blanco a negro, rojo a verde,rojo a azul,verde a azul

normal maps rugosos y lizos

un rig de luz, para poner escenas.

Usar prefabs para todo, , (excepto gameobjects que sirvan de folders) incluso objetos
que se usen una sola ves. esto hace que no necesites cargar la escena para hacer
cambios

Usar prefabs separados para especializacin, no usar instancias especificas, si un


enemigo brinca, y otro brinca y se agacha, haz uno genrico que brinque, y luego le
agregas que se agache, esto facilita, hacer cambios de cada tipo en un lugar, hacer
cambios sin tener que cambiar la escena

Si necesitas linkear instancias,que estos vnculos se hagan de manera automtica, que


el game manager encuentre sus referencias on Start

Utilizar procesos seguros para versionar prefabs. cuando hagas cambios peligrosos,

1 Duplica el prefab nombre Player p.e

2 renombrar el prefab a __Player_Backup

3 hacer cambios a Player

4 si todo funciona bien, borrar __Player_Backup

No permitas que los objetos spawneados se rieguen en la jerarquia. desde un principio


enparentalos, de tal manera que sea mas facil localizarlos, mtelos en un gameobject
vacio. y este llamalo por ejemplo ObjetosDinamicos

Para los componentes, nunca hagas publica una variable que no deba ser modificada
en el inspector, mejor usa Modo Debug. en caso raro que necesites publicarlas, aleja a
diseadores, colocando Undescores al principio

Separa la interface de la logica de juego, (patron MVC)

p.e que GUI la controle un solo componente, el resto no sabe de su existencia


(en teoria , an borrando la GUI, el juego debe seguir funcionando y ser
posible reimplementarla sin que deba escribir nada de codigo)

Procurar no usar strings para identificar objetos, prefabs, etc. (triste excepcion son las
animaciones)

Evita usar arreglos publicos con indices acoplados, si vas a trabajar armas, no definas arreglo
de armas, arreglo de balas, arreglo de particulas,
public void SelectWeapon(int index)
{
currentWeaponIndex = index;
Player.SwitchWeapon(weapons[currentWeapon]);
}

public void Shoot()


{
Fire(bullets[currentWeapon]);
FireParticles(particles[currentWeapon]);
}

mejor define una clase que tenga armas, balas y particulas y haz un arreglo de estas:
public class Weapon
{
public GameObject prefab;
public ParticleSystem particles;
public Bullet bullet;
}

Si planeas idiomas (localizacion), debes colocar todos los strings en un solo archivo

Implementar shortcuts para tomar capturas de pantalla, windows 7 tiene snippingTool


en windows 8 windoes + pausa y lo graba automaticamente en el escritorio. o
http://www.techsmith.com/jing.html

Implementa opciones de Debuggueo para hacer el testing mas facil, por ejemplo,

desbloquear todos los Items,

deshabilitar enemigos,

deshabilitar GUI,

hacer al jugador invencible

Mantn una escena con todos los elementos de gameplay, por ejemplo escena con
todos los enemigos, o todos los objetos con quienes puedas interactuar, esto facilita
las pruebas sin tener que jugar mucho

Documenta tu proyecto, la mayora de la documentacin debe estar embebida en el


cdigo, para el resto,

Layer uses, para colisin, raycasting, escencialmente que debe ir en qu

Uso de los Tags

nivel de capas de GUIs (que debe ir antes y despus)

También podría gustarte