Corgi Engine — это один из самых популярных 2D platformer engine для Unity, предназначенный для создания платформеров, run & gun игр и metr…
Скрипты и инструменты для Unity — C# ассеты
В разделе — готовые C# скрипты и инструменты для Unity: контроллеры персонажа (FPS, third-person, 2D platformer), системы сохранений, инвентари, простые AI и FSM, object pools, расширения редактора и утилиты для повседневной разработки.
Зачем брать чужие скрипты
Каждую механику можно написать самому — но базовые системы вроде сохранения, пула объектов или FSM состояний реализуются примерно одинаково в каждом проекте. Готовый, обкатанный сообществом код экономит дни, а часто и помогает узнать «правильный» паттерн. Главное — внимательно читать код, а не вставлять вслепую: чужой скрипт без понимания превратит проект в чёрный ящик.
Ассеты в категории «Скрипты»
Voxel Destruction Pro
СкриптыVoxel Destruction Pro — это мощный инструмент для создания высокопроизводительного воксельного разрушения в Unity. Ассет позволяет импортир…
Cozy Builder
СкриптыCozy Builder — инструмент для процедурной генерации средневековых зданий и стен в стиле Tiny Glade. Подходит для игр с механикой строительс…
Crest — это продвинутая система водной симуляции для Unity, обеспечивающая реалистичную визуализацию и физику воды с высокой производительн…
Что важно знать перед использованием
- →Перед использованием просматривай код: ищи Find, GetComponent в Update и аллокации в горячих местах — это самые частые источники тормозов.
- →Скрипты с зависимостью от старого Input Manager придётся адаптировать, если ты на новой Input System.
- →Системы сохранений на PlayerPrefs — только для настроек. Для сейвов игры используй JSON или binary serialization.
- →Всегда оборачивай чужой код в свой namespace, чтобы избежать конфликтов с другими ассетами.
Часто задаваемые вопросы
Можно ли модифицировать чужие скрипты под себя? +
Если лицензия позволяет (MIT, Apache, CC0 — да; некоторые проприетарные — нет) — модифицируй свободно. Но рекомендуется делать форк/копию скрипта в своём namespace, чтобы при обновлении ассета не потерять изменения.
Что такое ScriptableObject и зачем он нужен? +
ScriptableObject — это «контейнер» данных, который существует как ассет в проекте, а не привязан к сцене. Идеален для конфигов: характеристик оружия, настроек врагов, диалогов, тем оформления. В отличие от обычных классов, ScriptableObject виден в инспекторе и редактируется без кода.
Как избежать аллокаций в Update? +
Не вызывай в Update методы вроде new List<>(), GetComponent, Find, Camera.main, GameObject.Tag-сравнения через string. Кэшируй ссылки в Start или Awake. Используй CompareTag вместо tag == "X". Для частых вызовов рассмотри object pooling.
FSM, Behavior Tree или просто if-else — что выбрать для AI? +
Для 2–3 состояний — if-else или switch. Для 4–8 состояний — FSM (Finite State Machine). Для сложного AI с приоритетами и параллельным поведением — Behavior Tree. Усложнять архитектуру стоит только когда простой подход уже не справляется.
Как организовать сохранения в Unity? +
Самый универсальный способ: сериализовать данные в JSON через JsonUtility.ToJson и сохранять в Application.persistentDataPath. PlayerPrefs подходит только для настроек (звук, разрешение) — он не предназначен для крупных сейвов и теряет данные при переустановке.