Project structure best practices

Tulenber 14 February, 2020 ⸱ Beginner ⸱ 2 min ⸱

Ну кто так строит? “Чародеи”
Борьба с энтропией начинается в момент нажатия кнопки "Create" и первой битвой будет организация проекта.

Начальная структура напрямую отразится на той боли, которую вы будете испытывать во время работы над проектом, а попытка привести всё в порядок может сломать ваш проект на длительный промежуток времени, если вы вообще отважитесь это сделать.

Базовая структура

Unity, как в целом и любой другой программный продукт, имеет свой набор используемых ресурсов и окинув комьюнити взглядом можно накидать такую базовую структуру:

  • Animation
  • AssetStore
  • Audio
    • Music
    • SFX
  • Bundles
  • Materials
  • Models
  • Plugins
  • Prefabs
  • Resources
  • Sandbox
  • Scenes
    • Levels
    • Other
  • Scripts
    • Editor
  • Shaders
  • Tests
  • Textures

Теоретически сюда можно добавить ещё сущности, например, Maps или Tilemaps, если они нужны, но стоит 3 раза подумать прежде, чем добавлять что-то в корень проекта. Про то что тут не должно быть никаких ассетов и так понятно.

Соглашение о наименовании

Из-за того, что стандарты принимаются людьми, а, точнее, очень большим количеством людей в каждом отдельно взятом проекте, тяжело прийти к какому-либо конечному варианту соглашения, главное чтобы оно было и все его придерживались(идеальным вариантом являются автоматические тесты, но об этом в следующий раз).

Asset Store

Boromir

Для ассетов из стора будем пользоваться папкой AssetStore. Зачастую содержат в себе несколько версий контента, примеры, послание от автора и вообще кучу всякого хлама. Понятно что тащить это всё в свой проект не очень хочется, но как сказал Боромир: “Нельзя просто так взять скачать ассет, поправить и потом вставить его в свой проект!”. Поэтому создаём новый проект, выкачиваем ассет туда, чистим, приводим к нужной структуре и жмём "Assets->Export Package…“. Только не забудьте сохранить исходную версию, на всякий случай.

Sandbox

Интересная идея не размазывать экспериментальные вещи сразу по проекту, а сделать их в отдельном Sandbox и впоследствии, при решении использовать, перенести на постоянное место жительства.

Asset Bundles

Хорошей идеей выглядит разделять скачиваемые отдельно ресурсы, под это будет выделена Bundles, будем повторять базовую структура внутри бандла при необходимости.

Заключение

Но в итоге основным советом будет использовать то, что для вас работает. Если ваша структура позволяет эффективно находить то что вам нужно, а также вводить новых сотрудников на проект, то какая разница, как называется та или иная папка. Пока! =)



Privacy policyCookie policyTerms of service
Tulenber 2020