Настройка canvas unity под андроид



Холст (Canvas)

Компонент Canvas представляет собой абстрактное пространство, в котором производится настройка и отрисовка UI. Все UI-элементы должны быть потомками игровых объектов, к которым присоединен Canvas. Когда вы создаете UI-элемент из пункта меню (GameObject > Create UI), Canvas будет добавлен автоматически, если его нет в сцене.

Выбрано Screen Space — Overlay Выбрано Screen Space — Camera Выбрано World Space

Свойства

Свойство: Функция:
Render Mode Режим представления UI: как объект на экране или как объект в 3D пространстве (см. ниже). Опции: Screen Space — Overlay, Screen Space — Camera и World Space.
Pixel Perfect (Screen Space modes only) Должен ли UI рисоваться без сглаживания для точности?
Render Camera (Screen Space — Camera mode only) Камера, с помощью которой рендерится UI (см. ниже).
Plane Distance (Screen Space — Camera mode only) Расстояние, на котором плоскость UI должна быть расположена перед камерой.
Event Camera (World Space mode only) Камера для обработки событий UI.
Receives Events Обрабатываются ли события UI этим компонентом Canvas?

Подробности

Одного холста для всех UI-элементов вполне достаточно, но и несколько холстов в сцене допустимо. Также, возможно использование нескольких холстов, когда один выставляется дочерним элементом другого, для оптимизации. Вложенный холст использует тот же режим рендеринга (Render Mode), что и родитель.

Традиционно, пользовательские интерфейсы отображаются прямо на экране как простые элементы. Это значит, что они не имеют понятия 3D пространства, отображаемого камерой. Unity поддерживает этот способ отисовки в экранном пространстве, но также позволяет интерфейсам рисоваться как объектам сцены, в зависимости от режима отрисовки (Render Mode). Доступные режимы: Screen Space — Overlay, Screen Space — Camera и World Space.

Screen Space — Overlay (пространство экрана — поверх)

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

Интерфейс рисуемый поверх объектов сцены

Note: The Screen Space — Overlay canvas needs to be stored at the top level of the hierarchy. If this is not used then the UI may disappear from the view. This is a built-in limitation. Keep the Screen Space — Overlay canvas at the top level of the hierarchy to get expected results.

Screen Space — Camera (пространство экрана — камера)

В этом режиме, холст отображается как если бы он был нарисован на плоском объекте, на некотором расстоянии заданной камеры. Экранный размер интерфейса не меняется с расстоянием, т.к. он всегда масштабируется чтобы в точности заполнять пирамиду видимости камеры (camera frustum). Если размер или разрешение экрана, или пирамида видимости, изменяются – интерфейс автоматически перемасштабируется, чтобы помещаться. Любые 3д объекты сцены, расположенные ближе к камере, чем плоскость интерфейса, будут отрисованы “над” интерфейсов, в то время как остальные объекты, находящиеся за плоскостью, будут загорожены.

Интерфейс в режиме Camera mode с объектами сцены спереди

World Space (пространство мира)

Этот режим рисует интерфейс, как если бы он был плоским объектом сцены. В отличие от режима Screen Space — Camera, плоскость не обязана быть перпендикулярной направлению камеры, и может быть ориентирована как угодно. Размер холста может быть установлен через его Rect Transform, но его экранный размер будет зависеть от угла зрения и расстояния от камеры. Другие объекты сцены могут проходить сзади, сквозь, или спереди холста.

Интерфейс в пространстве мира, пересекающийся с объектами сцены

Источник

Canvas Scaler

The Canvas Scaler component is used for controlling the overall scale and pixel density of UI elements in the Canvas. This scaling affects everything under the Canvas, including font sizes and image borders.

Свойства

Свойство: Функция:
UI Scale Mode Determines how UI elements in the Canvas are scaled.
Constant Pixel Size Makes UI elements retain the same size in pixels regardless of screen size.
Scale With Screen Size Makes UI elements bigger the bigger the screen is.
Constant Physical Size Makes UI elements retain the same physical size regardless of screen size and resolution.

Settings for Constant Pixel Size:

Свойство: Функция:
Scale Factor Scales all UI elements in the Canvas by this factor.
Reference Pixels Per Unit If a sprite has this ‘Pixels Per Unit’ setting, then one pixel in the sprite will cover one unit in the UI.

Settings for Scale With Screen Size:

Свойство: Функция:
Reference Resolution The resolution the UI layout is designed for. If the screen resolution is larger, the UI will be scaled up, and if it’s smaller, the UI will be scaled down.
Screen Match Mode A mode used to scale the canvas area if the aspect ratio of the current resolution doesn’t fit the reference resolution.
Match Width or Height Scale the canvas area with the width as reference, the height as reference, or something in between.
Expand Expand the canvas area either horizontally or vertically, so the size of the canvas will never be smaller than the reference.
Shrink Crop the canvas area either horizontally or vertically, so the size of the canvas will never be larger than the reference.
Match Determines if the scaling is using the width or height as reference, or a mix in between.
Reference Pixels Per Unit If a sprite has this ‘Pixels Per Unit’ setting, then one pixel in the sprite will cover one unit in the UI.

Settings for Constant Physical Size:

Свойство: Функция:
Physical Unit The physical unit to specify positions and sizes in.
Fallback Screen DPI The DPI to assume if the screen DPI is not known.
Default Sprite DPI The pixels per inch to use for sprites that have a ‘Pixels Per Unit’ setting that matches the ‘Reference Pixels Per Unit’ setting.
Reference Pixels Per Unit If a sprite has this ‘Pixels Per Unit’ setting, then its DPI will match the ‘Default Sprite DPI’ setting.

Settings for World Space Canvas (shown when Canvas component is set to World Space):

Свойство: Функция:
Dynamic Pixels Per Unit The amount of pixels per unit to use for dynamically created bitmaps in the UI, such as Text.
Reference Pixels Per Unit If a sprite has this ‘Pixels Per Unit’ setting, then one pixel in the sprite will cover one unit in the world. If the ‘Reference Pixels Per Unit’ is set to 1, then the ‘Pixels Per Unit’ setting in the sprite will be used as-is.

Детали

For a Canvas set to ‘Screen Space — Overlay’ or ‘Screen Space — Camera’, the Canvas Scaler UI Scale Mode can be set to Constant Pixel Size, Scale With Screen Size, or Constant Physical Size.

Constant Pixel Size

Using the Constant Pixel Size mode, positions and sizes of UI elements are specified in pixels on the screen. This is also the default functionality of the Canvas when no Canvas Scaler is attached. However, With the Scale Factor setting in the Canvas Scaler, a constant scaling can be applied to all UI elements in the Canvas.

Scale With Screen Size

Using the Scale With Screen Size mode, positions and sizes can be specified according to the pixels of a specified reference resolution. If the current screen resolution is larger than the reference resolution, the Canvas will keep having only the resolution of the reference resolution, but will scale up in order to fit the screen. If the current screen resolution is smaller than the reference resolution, the Canvas will similarly be scaled down to fit.

If the current screen resolution has a different aspect ratio than the reference resolution, scaling each axis individually to fit the screen would result in non-uniform scaling, which is generally undesirable. Instead of this, the ReferenceResolution component will make the Canvas resolution deviate from the reference resolution in order to respect the aspect ratio of the screen. It is possible to control how this deviation should behave using the Screen Match Mode setting.

Constant Physical Size

Using the Constant Physical Size mode, positions and sizes of UI elements are specified in physical units, such as millimeters, points, or picas. This mode relies on the device reporting its screen DPI correctly. You can specify a fallback DPI to use for devices that do not report a DPI.

Пространство игрового мира (World Space)

For a Canvas set to ‘World Space’ the Canvas Scaler can be used to control the pixel density of UI elements in the Canvas.

Источник

Set up the Canvas

Within the Viewport The user’s visible area of an app on their screen.
See in Glossary
pane, you can find the Canvas, a floating re-sizable edit-time container that contains a live version of the UI (User Interface) Allows a user to interact with your application. Unity currently supports three UI systems. More info
See in Glossary Document (UXML). If you can’t see it, select the Fit Canvas button in the Viewport toolbar A row of buttons and basic controls at the top of the Unity Editor that allows you to interact with the Editor in various ways (e.g. scaling, translation). More info
See in Glossary to bring it into view. Any settings related to the Canvas, like its size, aren’t saved as part of the UI Document (UXML) but stored in a separate settings file for the next time you open the same UI Document (UXML).

Size the Canvas

To resize the Canvas inside the Viewport, drag the edges or corners. For exact sizing, click on the header of the Canvas through the Inspector A Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary
pane, where you will see fields for Canvas height and width. You can also lock the Canvas size to the size of the Unity Game Window using the Match Game View checkbox to align with a runtime UI environment:

CanvasSizeSettings

Change Canvas background

You can change the Canvas background to make editing the UI in context easier. To change the background, select the Canvas in the Inspector pane. You can set it to be a solid color, a specific texture (a mock up from a UI Designer), or a live view from a Camera A component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary
in an open Unity Scene A Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary :

CanvasBackgroundSettings

Источник

You may also like...

Adblock
detector