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