2015-08-11 7 views
7

Я новичок в Unity, и я понял, что трудно сделать многопользовательскую игру 2d на единство без платных 3-х плагинов, доступных в Asset Store.Разработка 2D-игры Inside Canvas Scaler

Я сделал несколько тестов, и я в состоянии сделать многопользовательскую поддержку разрешения таким образом:

1 Поместите все из пользовательского интерфейса (кнопки и т.д.) внутри объекта Canvas в Рендер Mode Screen Space - Overlay с ссылка разрешение и фиксированная ширина 9: 16.

2- Поместите остальные игровые объекты внутри Игрового объекта, названного GameManager, с компонентом Canvas Scaler в пространстве экрана режима рендеринга. Камера - с опорным разрешением 16: 9, фиксированной шириной и главной камерой. После этого все игровые объекты, такие как игрок, платформы и т. Д. Внутри GameManager, должны иметь компонент RectTransform, компонент CanvasRenderer и компонент изображения, например.

Могу ли я продолжить разработку игры таким образом, или это неправильный способ сделать что-то?

С уважением

+0

The Canvas предназначен для компонентов GUI и не предназначен для создания полноценной игры. Однако изменение разрешения игры должно быть прекрасным, я уверен, что вы можете установить видовое окно на 800 на 600, у меня может быть какая-то кодировка, но мне придется позже проверить вас – Canvas

+0

Спасибо за вашу помощь , Я жду, когда ваш код изменит разрешение игры. – mistic

+0

Кажется, что код, который у меня есть, поможет вам здесь: (код, который у меня есть, в основном поддерживает разрешение игры одинаково, несмотря ни на что, даже если они идут в полноэкранном режиме. Однако я нашел этот http: //gamedev.stackexchange. com/questions/79546/how-do-you-handle-aspect-ratio-difference-with-unity-2d – Canvas

ответ

2

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

2D-игры, созданные без масштабирования холста, не создают много проблем (в основном они не вызывают никаких проблем) при множественных разрешениях.

Итак, ваш шаг 1 правильный, но для шага 2 вам не нужно прилагать компонент масштабирования холста.

Не забудьте отметить свою сцену как 2D (не обязательно), а вашу камеру - орфографической (необходимой) при разработке 2D-игр.

+0

Спасибо за вашу помощь.Каковы основные проблемы, которые могут вызвать использование масштабирования для холста для разработки полной игры? – mistic

+0

Разработка небольшой игры с не очень ужинающими функциями: масштабирующее средство для холста не вызовет каких-либо проблем, но в определенных сценариях, подобных тому, как вы хотите, чтобы игрок мог прокрутить карту, просто перетащив палец на экран. это может быть немного жестким (не невозможно), поскольку масштабирующее средство для холста устанавливает ограничения на некоторые объекты, которые нужно перемещать во время выполнения. Под «не невозможным» я подразумеваю, что единство сделало его доступным, чтобы вы могли наследовать их классы UI и расширять их так, как вы хотите. –

+0

Спасибо за ваш ответ. Вы говорите, что я могу иметь проблемы с производительностью с этим решением? – mistic

5

Также не забудьте GUI, Graphics. Это распространенное заблуждение, что GUI обесценивается и замедляется. Нет, это не так. Помощники GameObject для графического интерфейса были плохими и обесценились, но API для ввода OnGUI отлично работает, когда вам нужно всего лишь нарисовать текстуру или текст на экране. Их называют наследием, но планов по их удалению нет, как целое Unity UI is made out of it anyway.

Я сделал несколько игр только на них, используя Unity как очень переработанный многоплатформенный API для draw quad.

Существует также GL, если вы хотите что-то еще.

Просто помните - не будет встроенной физики, эффектов частиц, поиска путей или чего-либо еще - просто простой способ нарисовать материал на экране. У вас будет полный контроль над тем, что будет нарисовано - и это тоже хорошо и плохо, в зависимости от того, что вы хотите сделать.

+0

Что касается мультиресурсов - это одна из вещей, которые вам придется реализовать самостоятельно - так же, как все это делали в старых стилевых фреймах, таких как SDL, Allegro или многие флеш-движки. –