Controle do Skybox

Altere o tempo do skybox

Você pode alterar como um jogador vê a skybox sempre que estiver no seu scene; isso também afeta o matiz e a direção da iluminação global.

O céu em Decentraland segue um ciclo padrão dia/noite onde 1 minuto passa a cada segundo, então um ciclo completo leva 24 minutos para ser concluído. Se o scene não estiver impondo qualquer hora fixa do dia, então os players também podem trocar para uma hora particular do dia ajustando um slider na sua UI.

Sempre que players entram num scene com uma hora do dia diferente, ou o scene muda a hora do dia dinamicamente, a skybox faz uma transição suave ao longo de alguns segundos para esse novo valor.

Hora fixa do dia

Você pode definir uma hora fixa do dia para sua cena. Todos os jogadores verão a cena com essa hora do dia, e o skybox não seguirá o ciclo dia/noite.

No Creator Hub, abra as configurações da cena e clique na Settings aba para encontrar a seção Skybox Desmarque a opção Auto e defina a hora do dia que você quer.



Você também pode definir a hora do dia do skybox no código da sua cena. Para fazer isso, adicione a seguinte seção ao seu scene.json no nível raiz:

O número refere-se ao número de segundos desde o início do dia, variando de 0 (isso se refere a 00:00) a 86400 (isso se refere a 24:00). Qualquer número maior que 86400 é interpretado também como meia-noite.

Aqui estão mais alguns exemplos de valores válidos:

  • 0 segundos => 00:00

  • 21600 segundos => 06:00

  • 43200 segundos => 12:00

  • 64800 segundos => 18:00

  • 86400 segundos => 24:00

Lendo a hora do dia

Você pode ler a hora do dia a partir do seu código do scene usando o getWorldTime() função.

A função retorna um número entre 0 e 86400, onde 0 é meia-noite e 86400 é 24:00. Esse valor é atualizado se o scene mudar a hora do dia dinamicamente ou se o player mudar a hora do dia na UI. Caso contrário, retorna o valor relativo ao ciclo padrão dia/noite.

Alterando a hora do dia dinamicamente

Você pode mudar a hora do dia dinamicamente usando o SkyboxTime component. Este component só pode ser adicionado à root entity do scene engine.rootEntity.

O fixed_time property é um número entre 0 e 86400, onde 0 é meia-noite e 86400 é 24:00. Qualquer número maior que 86400 também é interpretado como meia-noite.

Sempre que este component é adicionado, removido, ou a fixed_time property é alterada, o tempo do dia da skybox faz uma transição suave ao longo de alguns segundos para esse novo valor. O mesmo acontece quando o player sai ou entra no scene. Enquanto o tempo do dia da skybox estiver fixo, a skybox não seguirá mais o progresso do seu ciclo dia/noite e os players não poderão mudar a hora do dia via UI.

Por padrão, a transição sempre acontece na direção forward, mas você pode mudar isso definindo o campo propriedade para TransitionMode.TM_FORWARD ou TransitionMode.TM_BACKWARD.

Atualizado