Usando Structs
1. O que são variáveis do tipo Structure?
Structure, são estruturas de dados também conhecidas como registros, permitem que um usuário combine itens de dados de (possivelmente) diferentes tipos de dados sob um único nome. Em outras palavras, é uma variável que contém outros variáveis de diferentes tipos.
Podem ser utilizadas para definir propriedades de um elemento do jogo como por exemplo os personagens.
2. Structure e Class
Em C++, uma estrutura é realmente a mesma coisa que uma Class, exceto por algumas diferenças sintáticas.
Por exemplo, Structs em C++ padronizam suas variáveis de membro como públicas por padrão, enquanto as classes têm variáveis privadas por padrão.
2.1. C++ Struct
struct Character {
int velocidade;
int forca;
bool correndo;
};
2.2. C++ Class
class Character {
int Velocidade;
int Forca;
bool Correndo;
};
2.3. C++ Struct Unreal
USTRUCT([Specifier, Specifier, ...])
struct FStructName
{
GENERATED_BODY()
int32 Velocidade;
int32 Forca;
UPROPERTY()
bool Correndo;
};
2.4. C++ Class Unreal
UCLASS()
class YOURMODULE_API APlayerCharacter: public ACharacter
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category="Player")
bool EstaCorrendo();
private:
bool Correndo = false;
int32 Velocidade=100;
int32 Forca = 100;
};
3. Criando variáveis do tipo Structure com Blueprint
Neste passo vamos criar o objeto SJogador do tipo Structure
para exemplificar o uso das variáveis utilizando o menu de contexto Blueprints
> Structure
.
3.1. Definindo variáveis dentro da estrutura
A seguir vamos adicionar variáveis dentro do da estrutura criada.
Nome | Tipo | Descrição |
---|---|---|
Nome | Name |
Armazena o nome do jogador |
Life | Float |
Total de vida do jogador |
Strength | Float |
Total de força do jogador |
Level | Integer |
O Nível que o jogador se encontra |
Image | Texture2D/References |
Armazena imagem 2d que representa o jogador |
Character | Character/Class |
Armazena a classe de objeto do personagem do jogador |
3.2. Acessando as variáveis
Para acessar as variáveis que estão dentro da objeto do tipo Structure
vamos utilizar Break Structure
.
3.3. Atualizando as variáveis
Quanto necessitamos atualizar as variáveis que estão contidas dentro de uma estrutura, podemos selecionar o variável e arrastar a conexão para abrir a lista de seleção de objetos e funções relacionados e selecionamos Set Members
.
Info - Variável SLights do tipo Struct
;
Info.Status - Variável enum
com os valores LightOn e LightOff;
Set Members in SLights - Função para atualização as variáveis membro de uma estrutura, SLights.
3.4. Exemplo do uso de variáveis Structure
Para exemplificar a utilização de variáveis Structure
vamos implementar um level onde os elementos serão construídos dinamicamente, para tal vamos utilizar uma Array de objetos do tipo Point Light Component
para que possam ser adicionados na cena no momento de construção do objeto.
3.4.1. Criando o objeto SControleLuzes
3.4.2. Lógica para construir os elementos na cena
1. Crie um level
utilizando o modelo default
;
2. Implemente um Blueprint Actor
com o nome BP_ControleLuzes
;
3. Adicionar as variáveis :
Luzes - Array de tipo Point Light Component
;
ControLuzes - Array de tipo SControleLuzes
;
Total_luzes : Integer.
4. Na construção do objeto (Construction Script) adicionamos elementos Point light component
na cena e logo em seguida no array Luzes.
5. Ao terminar o primeiro loop
reconstruímos o array de controle ControLuzes e o percorremos em conjunto com o array luzes para configurar as propriedades dos elementos.
6. Adicione o elemento BP_ControleLuzes na cena para visualizar as luzes sendo construídas.