Скрипты и инструменты для Unity — C# ассеты

В разделе — готовые C# скрипты и инструменты для Unity: контроллеры персонажа (FPS, third-person, 2D platformer), системы сохранений, инвентари, простые AI и FSM, object pools, расширения редактора и утилиты для повседневной разработки.

Зачем брать чужие скрипты

Каждую механику можно написать самому — но базовые системы вроде сохранения, пула объектов или FSM состояний реализуются примерно одинаково в каждом проекте. Готовый, обкатанный сообществом код экономит дни, а часто и помогает узнать «правильный» паттерн. Главное — внимательно читать код, а не вставлять вслепую: чужой скрипт без понимания превратит проект в чёрный ящик.

Ассеты в категории «Скрипты»

Cozy Builder

Cozy Builder

Скрипты

Cozy Builder — инструмент для процедурной генерации средневековых зданий и стен в стиле Tiny Glade. Подходит для игр с механикой строительс…

Unity 2022.3
Crest Water 5 (Oceans, Rivers, Lakes)

Crest — это продвинутая система водной симуляции для Unity, обеспечивающая реалистичную визуализацию и физику воды с высокой производительн…

Unity 2022.x.
1 2 3

Что важно знать перед использованием

  • Перед использованием просматривай код: ищи 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 подходит только для настроек (звук, разрешение) — он не предназначен для крупных сейвов и теряет данные при переустановке.