> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-es/scenes-sdk7/interactividad/skybox-control.md).

# Control del skybox

Cambia la hora del skybox

Puedes cambiar cómo ve un jugador el skybox cuando está de pie en tu escena; esto también afecta el tono y la dirección de la iluminación global.

El cielo en Decentraland sigue un ciclo predeterminado de día/noche que tarda 2 horas en completarse, por lo que hay 12 ciclos completos cada día real. Si la escena no está imponiendo una hora del día fija, entonces los jugadores también pueden cambiar a una hora del día específica modificando un deslizador en su UI.

Cada vez que los jugadores entran en una escena con una hora del día diferente, o la escena cambia la hora del día dinámicamente, el skybox se transiciona suavemente durante unos segundos hasta este nuevo valor.

## Hora fija del día

Puedes establecer una hora fija del día para tu escena. Todos los jugadores verán la escena con esta hora del día, y el skybox no seguirá el ciclo día/noche.

En el Creator Hub, abre los ajustes de la escena y haz clic en la **Ajustes** pestaña para encontrar la **Skybox** sección. Desmarca la **Automático** opción y establece la hora del día que quieras.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-85bd070c455c7e5852eba1e78902edb88dbfd17b%2Ffixed-time-of-day.png?alt=media\&token=56081304-f57b-475b-94e4-07c292805637)

También puedes establecer la hora del día del skybox en el código de tu escena. Para hacerlo, añade la siguiente sección a tu `scene.json` en el nivel raíz:

```json
 "skyboxConfig": {
    "fixedTime": 36000
  }
```

El número se refiere a la cantidad de segundos desde el inicio del día, con un rango de 0 (que se refiere a *00:00*) hasta 86400 (que se refiere a *24:00*). Cualquier número superior a 86400 también se interpreta como medianoche.

Aquí hay algunos ejemplos más de valores válidos:

* 0 segundos => *00:00*
* 21600 segundos => *06:00*
* 43200 segundos => *12:00*
* 64800 segundos => *18:00*
* 86400 segundos => *24:00*

## Leer la hora del día

Puedes leer la hora del día desde el código de tu escena usando la `getWorldTime()` función.

```ts
import { getWorldTime } from '~system/Runtime'

executeTask(async () => {
  let time = await getWorldTime({})
  console.log(time.seconds)
})
```

La función devuelve un número entre 0 y 86400, donde 0 es medianoche y 86400 es las 24:00. Este valor se actualiza si la escena cambia la hora del día dinámicamente o si el jugador cambia la hora del día en la UI. De lo contrario, devuelve el valor relativo al ciclo predeterminado de día/noche.

## Cambiar la hora del día de forma dinámica

Puedes cambiar la hora del día de forma dinámica usando el `SkyboxTime` componente. Este componente solo puede agregarse a la entidad raíz de la escena `engine.RootEntity`.

```ts
import { SkyboxTime } from '@dcl/sdk/ecs'

function main() {
  SkyboxTime.create(engine.RootEntity, { fixedTime: 36000 })
}
```

El `fixed_time` propiedad es un número entre 0 y 86400, donde 0 es medianoche y 86400 es las 24:00. Cualquier número superior a 86400 también se interpreta como medianoche.

Cada vez que este componente se agrega, se elimina o la `fixed_time` propiedad se cambia, la hora del día del skybox transiciona suavemente durante unos segundos hasta este nuevo valor. Lo mismo ocurre cuando el jugador sale o entra en la escena. Mientras la hora del día del skybox esté fija, el skybox ya no seguirá el progreso de su ciclo de día/noche y los jugadores no podrán cambiar la hora del día mediante la UI.

De forma predeterminada, la transición siempre ocurre en la dirección hacia adelante, pero puedes cambiar esto estableciendo el `transitionMode` propiedad en `TransitionMode.TM_FORWARD` o `TransitionMode.TM_BACKWARD`.

```ts
import { SkyboxTime, TransitionMode } from '@dcl/sdk/ecs'

function main() {
  SkyboxTime.create(engine.RootEntity, { fixedTime: 36000, transitionMode: TransitionMode.TM_BACKWARD })
}
```

{% hint style="info" %}
**💡 Consejo**: Para ver ejemplos funcionales de control del skybox, consulta las [`2,1-skybox-sdk-scene-a`](https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/2,1-skybox-sdk-scene-a) y [`3,1-skybox-sdk-scene-b`](https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/3,1-skybox-sdk-scene-b) escenas de prueba, que controlan `SkyboxTime` y `TransitionMode` en vivo desde un panel de UI, y [`2,0-skybox-scene-json`](https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/2,0-skybox-scene-json), que lee el `fixedTime` establecido en `scene.json` de vuelta en tiempo de ejecución mediante `getSceneInformation()`.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-es/scenes-sdk7/interactividad/skybox-control.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
