Atributos
El uso de atributos (personalizados) induce el uso de la reflexión. Por lo general, la reflexión ocurre en el código de terceros, pero el bajo número de bibliotecas de terceros para Unity significa que reinventar la rueda no es raro. El ejemplo está abajo.
Gestión de dependencias
La falta de capacidad para usar la inyección de dependencias de construcción mientras se programa para Unity significa que cada instancia tiene que inicializarse encontrando dependencias en la escena y extrayendo dependencias de singletons.
- Cómo sentirse o mantenerse imparcial sabiendo que está desarrollando explosivos o armas
- ¿Cómo es trabajar en Zalora?
- ¿Cuál es un mejor trabajo, asistente postal en una oficina de correos o asistente en SBI?
- Cómo ingresar a las finanzas sin ninguna calificación
- ¿Debería dejar mi trabajo?
Puede reducir en gran medida la cantidad de código similar en cada clase implementando la inicialización de dependencia automática. Marca un campo / propiedad con un atributo que describe el origen de la dependencia (desde singleton, buscar en escena, buscar en objetos secundarios, etc.) y en la llamada de inicialización solo un método de extensión que itera a través de cada campo / propiedad marcado, establece correctamente valor para ello.
Usar miembros ocultos
Se puede decir que si un miembro está oculto, hay una buena razón detrás de él, pero no es exactamente cierto sobre la API del motor de Unity, especialmente la API del editor de Unity. Algunos métodos están innecesariamente ocultos y pueden ser realmente útiles al extender la funcionalidad del editor. Muchas de las extensiones de editor de terceros para Unity también están llamando a métodos ocultos. Aún más, a veces es necesario llamar a métodos ocultos en el juego en sí, no solo en las extensiones del editor, porque si lo niegas como características no compatibles, tendrás que hacer tu propia implementación de sistemas integrados o usar alternativas de terceros .
Agregar controlador de eventos sin parámetros a cualquier evento
Cada evento acepta solo controladores que coinciden con el delegado declarado, pero ¿qué sucede si no le importan los posibles parámetros, es decir, si desea reaccionar en múltiples eventos completamente diferentes de la misma manera, independientemente de cualquier cosa?
Puede ajustar dinámicamente su controlador de eventos universal en exactamente el delegado que el evento exige: Suscribir una Acción a cualquier tipo de evento mediante reflexión.
Enlace similar a WPF
Al menos un sistema de encuadernación muy simple ya es útil si tiene alguna GUI con controles deslizantes, por ejemplo. Se puede implementar de manera diferente, pero si describe las propiedades de origen / destino para el enlace por sus nombres, el sistema de enlace tendrá que usar la reflexión, obviamente.