Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
En este artículo, continuamos optimizando las habilidades y ahora las habilidades activas agregadas al personaje se pueden sincronizar con la interfaz de usuario. En este artículo, mejoraremos el consumo de habilidades (liberar habilidades para reducir maná) y el mecanismo de enfriamiento.
Podemos ver que en el valor predeterminado de la clase de habilidad, puedes configurar su enfriamiento y GE consumido.
Por lo tanto, a continuación usaremos GE para configurar el enfriamiento y el consumo de habilidades.
Primero creamos un plano y la clase principal seleccionada es Efecto de juego
Nómbrelo GE_Cost_FireBolt, que significa el costo de la bola de fuego.
Para consumir nuestra duración, elija Instantáneo.
Luego agregamos modificadores para reducir la cantidad de maná del personaje, reduciéndola en 20 cada vez que se usa una habilidad.
Se crea un GE de consumo simple y lo aplicamos a las habilidades
A continuación, tenemos que llamar al nodo Comprometer habilidad en la habilidad. Este nodo deducirá el maná requerido para la habilidad. Si hay un tiempo de recuperación, la habilidad entrará en el tiempo de recuperación.
Commit Ability es un nodo unificado para deducir maná y enfriamiento. Por supuesto, también puedes separarlo y tener nodos separados para deducir consumo y enfriamiento.
Ejecutar efecto de prueba
Primero, determinamos si la habilidad se activará si no hay suficiente maná. Imprimimos datos antes de procesar el consumo.
Si la cantidad de maná es suficiente, se puede imprimir con éxito, pero si la cantidad de maná no puede soportar la liberación de la habilidad, no se imprimirá, lo que demuestra que si no hay suficientes recursos, la habilidad no se ingresará y no se juzga por la capacidad de confirmación, que solo se utiliza para el nodo de recursos.
Miramos el código fuente y el código que llama es K2_CommitAbility
Se llama a CommitAbility internamente para implementar la lógica, luego se verifica si el consumo es suficiente para proporcionar las habilidades y se llama a la función para deducir los recursos.
CommExecute es una función de deducción de recursos, que internamente llama a la deducción y enfriamiento de recursos.
Echa un vistazo a Aplicar enfriamiento, que tomará el nivel de habilidad y aplicará el GE al ASC.
Los recursos de la aplicación se consumen de la misma forma y también se obtienen niveles de habilidad.
Ahora sabemos que usar el consumo de habilidad puede modificar la cantidad de maná que consume según el nivel de habilidad. Podemos usar la tabla para definir diferentes niveles y consumo de maná.
Entonces creamos una nueva tabla de curvas para establecer el consumo de maná de las habilidades en diferentes niveles.
Cree una tabla de curvas, seleccione Constante como tipo y establezca el consumo de maná en cada nivel en un valor fijo.
Con nombre CT_Cost
Agrega internamente el consumo de maná de la habilidad desde el nivel 1 al nivel 10 de Fireball.
Luego use la tabla de curvas aquí en GE, seleccione la fila creada y establezca el valor en -1
Luego modifique el nivel de habilidad inicial en el código para probar.
Después de liberar una habilidad, la cantidad de maná es tres veces mayor que antes, lo que demuestra que no hay ningún problema con la configuración.
El principio del enfriamiento de habilidades es aplicar una etiqueta de enfriamiento a ASC durante la fase de enfriamiento. Esta habilidad no se puede usar nuevamente mientras exista la etiqueta de enfriamiento.
Entonces, queremos implementar el enfriamiento, primero creamos una etiqueta para el enfriamiento.
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
Luego regístrese en el administrador de etiquetas.
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
Crea una bola de fuego para enfriar GE
Modificar GE a una duración urgente
Como puede ver aquí, el tiempo de enfriamiento se puede configurar usando los diversos métodos que usamos para modificar el valor antes. Aquí usamos el más simple, configurándolo directamente en 1s.
No necesitamos modificar el contenido relacionado con los personajes aquí. Solo necesitamos agregar una etiqueta de enfriamiento al ASC cuando este GE entre en vigencia. Agregamos un componente de efecto de juego de etiquetas de destino.
Agregue una etiqueta de enfriamiento al Actor a través de este componente y agregue la etiqueta de enfriamiento que creamos.
Luego aplica el tiempo de reutilización en la habilidad.
Al realizar la prueba, descubrimos que solo podemos liberar la habilidad una vez por segundo.
Generalmente solo generamos una instancia de una habilidad de personaje para un personaje. Para evitar que el cliente desactive la habilidad antes de que se active, finalizaremos la habilidad cuando finalice la animación del montaje de la habilidad o finalice la combinación. cancelado a la fuerza, y cuando finalice la habilidad, para poder seguir reproduciendo el montaje.
También necesitamos activar la habilidad instanciada de Reactivación para que cuando se active nuevamente, desactive la activación anterior.
Seguimiento: ahora tenemos el consumo y se puede mostrar correctamente en la interfaz de usuario, pero el enfriamiento aún no se ha implementado. Después de usar la habilidad, el progreso del enfriamiento de la habilidad no se puede mostrar en la interfaz de usuario de la habilidad. los cambios en la habilidad de enfriamiento en el futuro y mostrarlos encima de la interfaz de usuario.