Herança de Objetos
1. Trabalhando herança com Blueprint
Como apresentado no conceito de classes, a herança permite usar classes já definidas para derivar novas classes, a seguir vamos verificar como implementar utilizando Blueprint.
Exemplo de classe Herói que derive de Humanos:
└── Character
├── BeginPlay()
└── Humanos
├── Vida (float) = 100
├── Dano (float) = 100
├── BeginPlay() (herdado)
├── Heroi
| ├── Vida = 100 (herdado)
| └── Dano = 50 (herdado)
└── Vilao
├── Vida = 100 (herdado)
└── Dano = 80 (herdado)
2. Criando uma classe filho
3. Variáveis da classe pai
4. Herança de propriedades e métodos
É possível sobrescrever os métodos da classe pai para adicionar uma nova lógica, vamos aos passos.
Criando um evento para sobrescrever o evento Begin Play
.
5. Executando um evento da classe pai
6. Componente ChildActor
O componente ChildActor
permite associar uma classe filha utilizando a lista de componentes.
ChildActor
- É necessário informar a classe filho neste componente.
7. Referências de atores e componentes
8. Manipulando Actors
Podemos adicionar, remover ou selecionar os atores que estão na cena do jogo, a seguir vamos implementar e entender esses comandos.
8.1. Spawn e Destroy Actors - Criando e destruindo um Actor
O processo de criação de uma nova instância de um ator é conhecido como spawning. A geração de atores é realizada usando a função SpawnActor
. Esta função cria uma nova instância de uma classe especificada e retorna um ponteiro para o Actor recém-criado. SpawnActor
só pode ser usado para criar instâncias de classes que herdam da classe Actor em sua hierarquia.
Utilizando o Level Bluprint
podemos implementar o código acima.
-
Ao pressionar a tecla B o ator e criado na cena utilizando as coordenadas de um componente
targetPoint
adicionando na cena; -
O comando
flip/flop
é utilizado para intercalar entre criar e destruir o ator, com os métodosSpawnActor
eDestroyActor
respectivamente; -
Usamos
IsValid
para verificar se o ator existe na cena.
8.2. Listando Actors por classe
Utilizando a função GetAllActorOfClass
e o loop For Each Loop
podemos listar todos os atores na cena.