Resumen de conocimientos básicos de UE4 (IV)
1. Las pruebas automáticas se dividen en pruebas simples y pruebas complejas. Las pruebas simples se utilizan para describir pruebas atómicas individuales, las pruebas complejas se utilizan para ejecutar el mismo código en función de múltiples entradas.
2. Se pueden utilizar pruebas simples para confirmar que una característica específica está funcionando como se esperaba. Suelen ser pruebas unitarias o pruebas funcionales.
3. Se pueden utilizar pruebas complejas para iterar sobre una serie de proyectos y ejecutar la misma funcionalidad en cada proyecto. Suele ser una prueba de estrés de contenido. Por ejemplo, cargar todos los mapas o compilar todos los planos.
4. La regla actual es colocar todas las pruebas automatizadas en el directorio PrivateTests del módulo correspondiente. El archivo de prueba se llama [ClassFilename]Test.cpp
5. Estas pruebas definen su funcionalidad individualmente aplicando la función RunTest() y la cadena del parámetro permanecerá como una cadena vacía.
IMPLEMENT_SIMPLE_AUTOMATION_TEST(TClass, PrettyName, TFlags)
IMPLEMENT_COMPLEX_AUTOMATION_TEST(TClass, PrettyName, TFlags)
Especificaciones de codificación
1. Los estándares de codificación son muy importantes para los programadores por las siguientes razones:
a.
b. Es casi imposible para el autor original del software mantenerlo durante todo su ciclo de vida.
c. Los estándares de codificación mejoran la legibilidad del software y permiten a los ingenieros comprender rápida y completamente el código nuevo.
d. Si decidimos publicar el código fuente para la comunidad de desarrolladores de MOD, queremos que sea fácil de entender.
e. La mayoría de las convenciones de codificación son realmente necesarias para la compatibilidad entre compiladores.
2. Los nombres de variables, métodos y clases deben ser claros, inequívocos y descriptivos.
3. Los comentarios deberían ayudar a mejorar el código. El código es la implementación de una funcionalidad y los comentarios indican el propósito del código.
VIII. Objeto
1. La clase base de objetos en Unreal Engine es UObject. La macro UCLASS se puede utilizar para marcar clases derivadas de UObject para que puedan ser reconocidas por los sistemas de procesamiento de UObject.
2. La macro UCLASS proporciona una referencia a UCLASS para UObject, describiendo su tipo según Unreal Engine.
3. Cada UCLASS mantiene un objeto llamado "Objeto predeterminado de clase", denominado CDO.
4. Las funciones para crear una nueva instancia de UObject son:
a.NewObject() crea una nueva instancia usando un nombre generado automáticamente. Se utiliza mejor en situaciones simples.
b.NewNamedObject() Crea una nueva instancia con un nombre específico y varios otros parámetros opcionales. Determinará si hay conflictos de nombres fuera de la nueva instancia.
c.ConstructObject() Crea una nueva instancia utilizando todas las opciones de creación disponibles. Úselo sólo cuando se requiera flexibilidad.
d.new se utiliza para construir objetos en determinadas situaciones de bajo nivel, como cuando el constructor requiere parámetros.
5. UObject proporciona las siguientes funciones:
a. Recolección de basura: Unreal Engine implementa un esquema de recolección de basura que limpia periódicamente los objetos a los que ya no se hace referencia o a los que ya no se les ha marcado claramente. destrucción.
b. Actualización de referencia: cuando un objeto se recolecta y limpia como basura, su referencia UPROPERTY se actualizará automáticamente a NULL.
c. Imagen
d. Serialización: cuando se serializa un UObject, todos los valores de UProperty se escriben o leen automáticamente.
e. Actualización automática de los cambios de propiedades predeterminados: cuando el CDO de una UClass cambia, el motor intentará aplicar de forma inteligente estos cambios a todas las instancias de la clase (cuando estén cargadas).
f. Inicialización automática de propiedades: durante la inicialización, UObject se borrará automáticamente antes de llamar al constructor.
g. Editor integrado automáticamente: el editor comprende UObject y UProperties y expone automáticamente estos valores para editarlos sin escribir código especial.
h. Proporcionar información sobre el tipo de tiempo de ejecución: los UObjects indican claramente qué tipo de UClass son, para que se puedan tomar decisiones relacionadas con el tipo de tiempo de ejecución.
i. Replicación de red: el sistema UObject incluye un conjunto de funciones estables que permite la comunicación en red y los juegos multijugador.
class MYPROJECT_API UMyObject: public UObject //Si MyProject desea exponer la clase UMyObject a otros módulos, especifique MYPROJECT_API.
{
GENERATED_BODY() // Configura esta clase para soportar la infraestructura requerida por el motor.
};
{GENERATED_BODY() // Configura la clase para soportar la infraestructura requerida por el motor.