> For the complete documentation index, see [llms.txt](https://docs.allout.game/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allout.game/all-out-docs/ru/ispolzovanie-redaktora/prefabs.md).

# Префабы

### Создание префабов

Префабы должны создаваться в редакторе щелчком правой кнопкой мыши в [Иерархия](/all-out-docs/ru/ispolzovanie-redaktora/hierarchy.md) и выборе «create prefab».

Когда вы сделаете это, в окне проводника ресурсов будет создан новый ресурс, который можно перетащить на сцену.

Чтобы отредактировать префаб, щелкните по нему правой кнопкой мыши и нажмите «Edit Prefab», после чего откроется новое окно для внесения изменений в эти сущности.

Когда вы сохраняете префаб, все экземпляры этого префаба в вашей сцене будут автоматически обновлены.

### Ограничения

{% hint style="info" %}
Система префабов All Out в настоящее время находится на очень ранней стадии разработки и не позволяет использовать динамические поля компонентов в каждом экземпляре префаба. Каждый связанный экземпляр сохраняет своё имя корня, положение, поворот, масштаб, состояние включения, сетевые флаги и порядок среди соседей при обновлении префаба.
{% endhint %}

### Создание префабов из CSL

```go
enemy_prefab := get_asset(Prefab_Asset, "prefabs/enemy.prefab");
enemy := Scene.instantiate(enemy_prefab, spawn_position);
```

`Scene.instantiate` возвращает корневую сущность префаба. Используйте его необязательный обратный вызов, когда поля должны быть заданы до того, как компонент `ao_start` методы будут выполнены.

### Отвязка префабов

Вы можете превратить экземпляр префаба в вашей сцене обратно в его отдельные сущности, щелкнув по нему правой кнопкой мыши в иерархии и выбрав «Unlink Prefab». Это может быть полезно, если вам нужно добавить динамические поля.
