«Неправильно» ли создавать игры Unity полностью с элементами пользовательского интерфейса против спрайтов?

8

Я попадаю в проект Unity с командой сторонних разработчиков. В нашей мобильной игре есть несколько мини-игр, и они построены полностью из элементов пользовательского интерфейса или необработанных изображений только на одном или двух элементах холста. Теперь я знаю, что термин «неправильно» открыт для интерпретации, поскольку игры довольно просты, и они отлично работают на современных устройствах, на которых мы их тестировали.

Однако мое несколько перфекционистское отношение часто вызывает у меня озабоченность по поводу «правильной / лучшей практики», и я с трудом расстаюсь с мыслью, что это не лучший способ разработки игр. Я смотрю на лучшие практики Unity, когда не хватает слишком большого количества элементов на холсте из-за его перерисовки каждый раз, когда что-то меняется, оптимизаторы рендеринга спрайтов оптимизировали обрезку полигонов в противоположность максимальным ректам, чтобы сохранить перерисовку, и т. Д. И ответ, который я получаю от команды разработчиков то есть, «способность экрана соотносить элементы холста позволяет легко обрабатывать различные пропорции, поэтому мы и создаем игры».

Я не хочу, чтобы это был «личный» вопрос с отрицательным голосом, поэтому есть ли более веская причина не создавать простые мобильные игры таким способом? Или это случай, если он работает на целевых устройствах и не вызывает проблем, почему бы и нет? Спасибо заранее за любые ответы, Jaysin

Jaysin
источник
2
Этот вопрос выглядит для меня основанным на мнении, но я подожду и посмотрю, как проголосуют другие пользователи и моды. Однако я упомяну одну вещь: эффективность ресурсов - это не только скорость обработки и использование памяти. Часто самым ограниченным ресурсом для игры является время разработки. Поэтому, если использование этой технологии позволяет вашим партнерам быстро выполнять итерации и своевременно обеспечивать целевое качество на многих целевых устройствах, одного этого вполне может быть достаточно, чтобы оправдать увеличение времени выполнения.
DMGregory
Спасибо за ваши отзывы, я изо всех сил старался излагать их так, чтобы они требовали лучших мировых практик и потенциальных непредвиденных последствий использования одного метода над другим. Если нет четкой технической причины не делать этого, то это помогает указать на ответ, что можно использовать этот метод, если он соответствует их потребностям. Я спросил здесь, потому что после нескольких дней поиска я не мог найти текущий ответ на вопрос.
Jaysin

Ответы:

4

Решение должно быть адаптировано к вашим потребностям. Если потребности игры (производительность IE, отзывчивость, простота разработки и т. Д.) Удовлетворяются с помощью только элементов пользовательского интерфейса, то проблем нет.

Следует учитывать одну вещь: эта система означает, что ваша команда разработчиков, вероятно, не знает, как использовать все возможности Unity. Если в будущем пользовательский интерфейс будет недостаточным, вероятно, будет трудно ориентировать их на более стандартный поток Unity.

nihohit
источник
Я думаю, что @Jaysin ищет информацию о том, какое решение является «более стандартным потоком Unity».
Лука
3

Я согласен с nihohit по этому вопросу. Важно принять во внимание масштаб проекта. Это может быть проще / быстрее сделать проект таким образом. Если это только небольшой тип игры или приложения, то неоптимизированный путь часто экономит много времени, а затем экономит деньги. Если маловероятно, что проект нужно поддерживать годами или его нужно расширять, возможно, имеет смысл придерживаться того, к чему привыкли разработчики, даже если это считается менее эффективной практикой.

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

iQew
источник
1

Нет ничего плохого только в использовании элементов canvas

Но здесь могут быть и плохие практики (но это не так).

Draco18s больше не доверяет SE
источник
1

Я думаю, что единственный вопрос, который вы должны задать в этом случае: «Предоставляет ли пользовательский интерфейс всю необходимую мне функциональность?»

У меня очень похожая проблема, за исключением того, что я работал с UE4. Я хотел не делать игру-головоломку, в которой вы перемещаете отмычку и пытаетесь установить булавки в правильном положении. Сначала я подумал, что будет проще и быстрее использовать пользовательский интерфейс, но быстро выяснилось, что у спрайтов уже есть множество функций, которые мне придется реализовать самостоятельно. В моем случае ответом было «Нет, пользовательский интерфейс НЕ предоставляет все необходимые мне функции».

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

lilKriT
источник