terça-feira, 15 de outubro de 2024

UEFN Verse: Constantes e Variáveis

Constantes e variáveis representam locais de memória usados para armazenar valores.

Uma constante recebe seu valor na inicialização e este valor não pode ser modificado durante a execução do programa.

Uma variável pode ter seu valor modificado a qualquer momento.

A criação de constantes e variáveis é parecida. A única diferença está no uso da palavra chave var para indicar que é uma variável. Este é o formato da criação:

    var Identificador : tipo = inicialização


Vamos analisar cada elemento da linha acima:

  • var : Usado para indicar a criação de uma variável. Se for omitido, significa que uma constante está sendo criada.
  • Identificador : Nome da constante ou variável.
  • tipo : Indica o tipo de valores que poderá ser armazenado.
  • inicialização : Expressão usada para gerar um valor inicial para a constante ou variável.


Existem diversos tipos que podem ser usados nas constantes e variáveis. Os tipos mais comuns estão descritos abaixo:

  • logic : Só pode armazenar os valores Booleano true ou false.
  • int : Armazena valores inteiros.
  • float : Pode armazenar valores numéricos que não são inteiros.
  • string : Usado para armazenar texto (sequência de caracteres).
  • Reference : Usada para referenciar instâncias de uma classe. Por exemplo, um dispositivo criativo que está no nível.

O tipo de uma constante pode ser omitido quando a criação é feita dentro de uma função (como a função OnBegin). O formato fica assim:

    Identificador := inicialização


Vamos criar um dispositivo simples no UEFN para vermos exemplos de uso das constantes e variáveis.

Em qualquer projeto UEFN, abra o Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.

Selecione o template Verse Device. Em Device Name coloque const_var_deviceclique no botão Create para usar o código do template.

Modifique o código Verse do dispositivo const_var_device para ficar com este conteúdo:

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

const_var_device := class(creative_device):

    # logic: Valores Booleano (true ou false) 
    @editable
    StartTimer : logic = false

    # string: Armazena texto. "" é uma string vazia
    @editable 
    Name : string = ""

    # float: Aceita valores numéricos que não são inteiros
    @editable 
    HeightInMeters : float = 1.80

    # var: Indica que é uma variável.
    # int: Armazena valores inteiros. 
    var NameLength : int = 0

    # Esta constante é uma referência para uma instância da classe timer_device
    @editable 
    TimerDevice : timer_device = timer_device{}

    # Esta função executa quando o dispositivo é iniciado no jogo
    OnBegin<override>()<suspends>:void=

        # O tipo string da constante WelcomeMsg foi inferido a partir da expressão.
        # {Name} será substituído pelo valor da constante Name.
        WelcomeMsg := "Welcome {Name} to UEFN"

        # Use set para modificar o valor de uma variável
        set NameLength = Name.Length

        # Print: Escreve um texto na tela e no log 
        Print(WelcomeMsg)
        Print("{Name} has {NameLength} characters")
        
        # if: Executa um bloco de código se o resultado da expressão for true
        if(StartTimer?):
            TimerDevice.Start()

As linhas que começam com o caractere # são comentários ignorados pelo código Verse.

O @editable é um atributo da linguagem Verse que indica que a constante ou variável pode ser modificada diretamente no UEFN.

Salve o arquivo e compile o código Verse usando a opção Verse > Build Verse Code do menu do UEFN. 

Para adicionar o nosso dispositivo Verse ao nível, acesse o Content Drawer e a pasta que tem o nome do projeto mais Content.

Arraste o const_var_device e solte-o no nível. Arraste também para o nível um Timer Device que pode ser encontrado na pasta Fortnite > Devices.

Selecione o const_var_device no nível. Na aba Details você pode modificar os valores das constantes que foram marcadas com @editable. Marque o checkbox da constante StartTimer. Coloque o seu nome na constante Name. Clique no drop-down de TimerDevice para selecionar o Timer Device que adicionamos ao nível.


Clique no botão Launch Session localizado na barra de ferramentas do UEFN para carregar o nível no Fortnite. 

Após iniciar a partida no Fortnite, pressione a tecla Tab e selecione a aba Log para visualizar o log com as mensagens escritas pelas funções Print. Verifique também que o Timer Device é iniciado pelo nosso código Verse se o valor da constante StartTimer for true.


Sumário Verse