reckfellENGINE

Camera2D

Узел камеры для двумерных сцен.

На этой странице
class Camera2DReckfellSharpНаследует Entity2D

Узел камеры для двумерных сцен.

Узел камеры для 2D-сцен. Он заставляет экран (текущий слой) прокручиваться вслед за этим узлом. Это упрощает (и ускоряет) программирование прокручиваемых сцен, чем ручное изменение положения узлов на основе CanvasItem. Камеры регистрируются в ближайшем узле Viewport (при подъеме по дереву). Для каждого окна просмотра может быть активна только одна камера. Если при подъеме по дереву нет доступного окна просмотра, камера зарегистрируется в глобальном окне просмотра. Этот узел предназначен для простого помощника, чтобы все работало быстро, но может потребоваться больше функциональности для изменения того, как работает камера. Чтобы создать свой собственный узел камеры, унаследуйте его от Entity2D и измените преобразование холста, установив Viewport.CanvasTransform в Viewport (вы можете получить текущий Viewport с помощью Entity.GetViewport). Обратите внимание, что Entity2D.GlobalPosition узла Camera2D не отображает фактическое положение экрана, которое может отличаться из-за примененного сглаживания или ограничений по перемещению. Вы можете использовать Camera2D.GetScreenCenterPosition для получения реального положения. То же самое касается Entity2D.GlobalRotation узла, которое может отличаться из-за примененного сглаживания вращения. Вы можете использовать Camera2D.GetScreenRotation для получения текущего поворота экрана.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

Camera2DКонструктор
# Camera2D
C#
public Camera2D();

Свойства28

AnchorModeСвойство
# AnchorMode
C#
public Camera2D.AnchorModeEnum AnchorMode { get; set; }

Точка привязки Camera2D.

CustomViewportСвойство
# CustomViewport
C#
public Entity CustomViewport { get; set; }

Пользовательский узел Viewport, прикрепленный к Camera2D. Если null или не является Viewport, вместо этого используется viewport по умолчанию.

DragBottomMarginСвойство
# DragBottomMargin
C#
public float DragBottomMargin { get; set; }

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

DragHorizontalEnabledСвойство
# DragHorizontalEnabled
C#
public bool DragHorizontalEnabled { get; set; }

Если true, камера движется только при достижении горизонтальных (левых и правых) границ перетаскивания. Если false, камера движется горизонтально независимо от границ.

DragHorizontalOffsetСвойство
# DragHorizontalOffset
C#
public float DragHorizontalOffset { get; set; }

Относительное горизонтальное смещение перетаскивания камеры между правым (-1) и левым (1) полями перетаскивания. Примечание: Используется для установки начального горизонтального смещения перетаскивания; определения текущего смещения; или принудительного задания текущего смещения. Оно не обновляется автоматически, когда Camera2D.DragHorizontalEnabled имеет значение true или поля перетаскивания изменяются.

DragLeftMarginСвойство
# DragLeftMargin
C#
public float DragLeftMargin { get; set; }

Левое поле, необходимое для перетаскивания камеры. Значение 1 заставляет камеру двигаться только при достижении левого края экрана.

DragRightMarginСвойство
# DragRightMargin
C#
public float DragRightMargin { get; set; }

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

DragTopMarginСвойство
# DragTopMargin
C#
public float DragTopMargin { get; set; }

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

DragVerticalEnabledСвойство
# DragVerticalEnabled
C#
public bool DragVerticalEnabled { get; set; }

Если true, камера движется только при достижении вертикальных (верхних и нижних) границ перетаскивания. Если false, камера движется вертикально независимо от границ перетаскивания.

DragVerticalOffsetСвойство
# DragVerticalOffset
C#
public float DragVerticalOffset { get; set; }

Относительное вертикальное смещение перетаскивания камеры между нижним (-1) и верхним (1) полями перетаскивания. Примечание: Используется для установки начального вертикального смещения перетаскивания; определения текущего смещения; или принудительного задания текущего смещения. Оно не обновляется автоматически, когда Camera2D.DragVerticalEnabled имеет значение true или поля перетаскивания изменяются.

EditorDrawDragMarginСвойство
# EditorDrawDragMargin
C#
public bool EditorDrawDragMargin { get; set; }

Если true, рисует прямоугольник перетаскиваемого поля камеры в редакторе.

EditorDrawLimitsСвойство
# EditorDrawLimits
C#
public bool EditorDrawLimits { get; set; }

Если true, рисует прямоугольник границ камеры в редакторе.

EditorDrawScreenСвойство
# EditorDrawScreen
C#
public bool EditorDrawScreen { get; set; }

Если true, рисует прямоугольник экрана камеры в редакторе.

EnabledСвойство
# Enabled
C#
public bool Enabled { get; set; }

Управляет тем, может ли камера быть активной или нет. Если true, Camera2D станет основной камерой, когда она войдет в дерево сцены и в данный момент нет активной камеры (см. Viewport.GetCamera2D). Когда камера в данный момент активна и Camera2D.Enabled установлен на false, следующая включенная Camera2D в дереве сцены станет активной.

IgnoreRotationСвойство
# IgnoreRotation
C#
public bool IgnoreRotation { get; set; }

Если true, на визуализируемый вид камеры не влияют ее Entity2D.Rotation и Entity2D.GlobalRotation.

LimitBottomСвойство
# LimitBottom
C#
public int LimitBottom { get; set; }

Нижний предел прокрутки в пикселях. Камера останавливается при достижении этого значения, но Camera2D.Offset может вывести вид за пределы предела.

LimitEnabledСвойство
# LimitEnabled
C#
public bool LimitEnabled { get; set; }

Если true, ограничения будут включены. Отключение этого позволит камере фокусироваться в любом месте, когда четыре свойства limit_* работать не будут.

LimitLeftСвойство
# LimitLeft
C#
public int LimitLeft { get; set; }

Предел прокрутки слева в пикселях. Камера останавливается при достижении этого значения, но Camera2D.Offset может вывести вид за пределы предела.

LimitRightСвойство
# LimitRight
C#
public int LimitRight { get; set; }

Предел прокрутки вправо в пикселях. Камера останавливается при достижении этого значения, но Camera2D.Offset может вывести вид за пределы предела.

LimitSmoothedСвойство
# LimitSmoothed
C#
public bool LimitSmoothed { get; set; }

Если true, камера плавно останавливается при достижении своих пределов. Это свойство не имеет эффекта, если Camera2D.PositionSmoothingEnabled равно false. Примечание: Чтобы немедленно обновить положение камеры, чтобы оно находилось в пределах ограничений без сглаживания, даже если эта настройка включена, вызовите Camera2D.ResetSmoothing.

LimitTopСвойство
# LimitTop
C#
public int LimitTop { get; set; }

Верхний предел прокрутки в пикселях. Камера останавливается при достижении этого значения, но Camera2D.Offset может вывести вид за пределы предела.

OffsetСвойство
# Offset
C#
public Vector2 Offset { get; set; }

Относительное смещение камеры. Полезно для осмотра или анимации дрожания камеры. Смещенная камера может выходить за пределы, определенные в Camera2D.LimitTop, Camera2D.LimitBottom, Camera2D.LimitLeft и Camera2D.LimitRight.

PositionSmoothingEnabledСвойство
# PositionSmoothingEnabled
C#
public bool PositionSmoothingEnabled { get; set; }

Если true, вид камеры плавно перемещается к целевой позиции со скоростью Camera2D.PositionSmoothingSpeed.

PositionSmoothingSpeedСвойство
# PositionSmoothingSpeed
C#
public float PositionSmoothingSpeed { get; set; }

Скорость эффекта сглаживания камеры в пикселях в секунду, когда Camera2D.PositionSmoothingEnabled имеет значение true.

ProcessCallbackСвойство
# ProcessCallback
C#
public Camera2D.Camera2DProcessCallback ProcessCallback { get; set; }

Обратный вызов процесса камеры.

RotationSmoothingEnabledСвойство
# RotationSmoothingEnabled
C#
public bool RotationSmoothingEnabled { get; set; }

Если true, вид камеры плавно вращается с помощью асимптотического сглаживания, чтобы совпасть с целевым вращением на Camera2D.RotationSmoothingSpeed. Примечание: Это свойство не имеет эффекта, если Camera2D.IgnoreRotation равно true.

RotationSmoothingSpeedСвойство
# RotationSmoothingSpeed
C#
public float RotationSmoothingSpeed { get; set; }

Угловая асимптотическая скорость эффекта сглаживания вращения камеры, когда Camera2D.RotationSmoothingEnabled имеет значение true.

ZoomСвойство
# Zoom
C#
public Vector2 Zoom { get; set; }

Масштаб камеры. Более высокие значения соответствуют большему масштабу. Например, масштаб Vector2(2.0, 2.0) будет вдвое больше по каждой оси (область обзора в четыре раза меньше). Напротив, масштаб Vector2(0.5, 0.5) будет вдвое меньше по каждой оси (область обзора в четыре раза больше). Компоненты X и Y, как правило, всегда должны иметь одинаковое значение, если только вы не хотите растянуть поле обзора камеры. Примечание: FontFile.Oversampling не учитывает масштаб Camera2D. Это означает, что увеличение/уменьшение масштаба приведёт к размытию или пикселизации растровых и растровых (не MSDF) динамических шрифтов, если только шрифт не является частью CanvasLayer, который игнорирует масштаб камеры. Чтобы текст оставался чётким независимо от масштаба, можно включить отображение шрифтов MSDF, включив ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (применяется только к шрифту проекта по умолчанию) или включив Мультиканальное поле в параметрах импорта DynamicFont для пользовательских шрифтов. Для системных шрифтов SystemFont.MultichannelSignedDistanceField можно включить в инспекторе.

Методы52

Alignvoid
# Align
C#
public void Align();

Выравнивает камеру по отслеживаемому узлу. Примечание: Вызов Camera2D.ForceUpdateScroll после этого метода не требуется.

ForceUpdateScrollvoid
# ForceUpdateScroll
C#
public void ForceUpdateScroll();

Заставляет камеру немедленно обновить прокрутку.

GetAnchorModeCamera2D.AnchorModeEnum
# GetAnchorMode
C#
public Camera2D.AnchorModeEnum GetAnchorMode();
Возвращает Camera2D.AnchorModeEnum
GetCustomViewportEntity
# GetCustomViewport
C#
public Entity GetCustomViewport();
Возвращает Entity
GetDragHorizontalOffsetfloat
# GetDragHorizontalOffset
C#
public float GetDragHorizontalOffset();
Возвращает float
GetDragMarginfloat
# GetDragMargin
C#
public float GetDragMargin(Side margin);

Возвращает указанное поле Side. См. также Camera2D.DragBottomMargin, Camera2D.DragTopMargin, Camera2D.DragLeftMargin и Camera2D.DragRightMargin.

Параметры
ИмяТипПо умолчанию
marginSide—
Возвращает float
GetDragVerticalOffsetfloat
# GetDragVerticalOffset
C#
public float GetDragVerticalOffset();
Возвращает float
GetLimitint
# GetLimit
C#
public int GetLimit(Side margin);

Возвращает лимит камеры для указанного Side. См. также Camera2D.LimitBottom, Camera2D.LimitTop, Camera2D.LimitLeft и Camera2D.LimitRight.

Параметры
ИмяТипПо умолчанию
marginSide—
Возвращает int
GetOffsetVector2
# GetOffset
C#
public Vector2 GetOffset();
Возвращает Vector2
GetPositionSmoothingSpeedfloat
# GetPositionSmoothingSpeed
C#
public float GetPositionSmoothingSpeed();
Возвращает float
GetProcessCallbackCamera2D.Camera2DProcessCallback
# GetProcessCallback
C#
public Camera2D.Camera2DProcessCallback GetProcessCallback();
Возвращает Camera2D.Camera2DProcessCallback
GetRotationSmoothingSpeedfloat
# GetRotationSmoothingSpeed
C#
public float GetRotationSmoothingSpeed();
Возвращает float
GetScreenCenterPositionVector2
# GetScreenCenterPosition
C#
public Vector2 GetScreenCenterPosition();

Возвращает центр экрана с точки зрения этой камеры в глобальных координатах. Примечание: Точное целевое положение камеры может отличаться. См. Camera2D.GetTargetPosition.

Возвращает Vector2
GetScreenRotationfloat
# GetScreenRotation
C#
public float GetScreenRotation();

Возвращает текущий поворот экрана с точки зрения этой камеры. Примечание: Поворот экрана может отличаться от Entity2D.GlobalRotation, если камера вращается плавно из-за Camera2D.RotationSmoothingEnabled.

Возвращает float
GetTargetPositionVector2
# GetTargetPosition
C#
public Vector2 GetTargetPosition();

Возвращает целевое положение этой камеры в глобальных координатах. Примечание: Возвращаемое значение не совпадает с Entity2D.GlobalPosition, так как на него влияют свойства перетаскивания. Оно также не совпадает с текущим положением, если Camera2D.PositionSmoothingEnabled равно true (см. Camera2D.GetScreenCenterPosition).

Возвращает Vector2
GetZoomVector2
# GetZoom
C#
public Vector2 GetZoom();
Возвращает Vector2
IsCurrentbool
# IsCurrent
C#
public bool IsCurrent();

Возвращает true, если эта Camera2D является активной камерой (см. Viewport.GetCamera2D).

Возвращает bool
IsDragHorizontalEnabledbool
# IsDragHorizontalEnabled
C#
public bool IsDragHorizontalEnabled();
Возвращает bool
IsDragVerticalEnabledbool
# IsDragVerticalEnabled
C#
public bool IsDragVerticalEnabled();
Возвращает bool
IsEnabledbool
# IsEnabled
C#
public bool IsEnabled();
Возвращает bool
IsIgnoringRotationbool
# IsIgnoringRotation
C#
public bool IsIgnoringRotation();
Возвращает bool
IsLimitDrawingEnabledbool
# IsLimitDrawingEnabled
C#
public bool IsLimitDrawingEnabled();
Возвращает bool
IsLimitEnabledbool
# IsLimitEnabled
C#
public bool IsLimitEnabled();
Возвращает bool
IsLimitSmoothingEnabledbool
# IsLimitSmoothingEnabled
C#
public bool IsLimitSmoothingEnabled();
Возвращает bool
IsMarginDrawingEnabledbool
# IsMarginDrawingEnabled
C#
public bool IsMarginDrawingEnabled();
Возвращает bool
IsPositionSmoothingEnabledbool
# IsPositionSmoothingEnabled
C#
public bool IsPositionSmoothingEnabled();
Возвращает bool
IsRotationSmoothingEnabledbool
# IsRotationSmoothingEnabled
C#
public bool IsRotationSmoothingEnabled();
Возвращает bool
IsScreenDrawingEnabledbool
# IsScreenDrawingEnabled
C#
public bool IsScreenDrawingEnabled();
Возвращает bool
MakeCurrentvoid
# MakeCurrent
C#
public void MakeCurrent();

Делает Camera2D текущей активной камерой. Camera2D.Enabled должно быть true.

ResetSmoothingvoid
# ResetSmoothing
C#
public void ResetSmoothing();

Устанавливает положение камеры немедленно в текущее место назначения сглаживания. Этот метод не имеет эффекта, если Camera2D.PositionSmoothingEnabled имеет значение false.

SetAnchorModevoid
# SetAnchorMode
C#
public void SetAnchorMode(Camera2D.AnchorModeEnum anchorMode);
Параметры
ИмяТипПо умолчанию
anchorModeCamera2D.AnchorModeEnum—
SetCustomViewportvoid
# SetCustomViewport
C#
public void SetCustomViewport(Entity viewport);
Параметры
ИмяТипПо умолчанию
viewportEntity—
SetDragHorizontalEnabledvoid
# SetDragHorizontalEnabled
C#
public void SetDragHorizontalEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetDragHorizontalOffsetvoid
# SetDragHorizontalOffset
C#
public void SetDragHorizontalOffset(float offset);
Параметры
ИмяТипПо умолчанию
offsetfloat—
SetDragMarginvoid
# SetDragMargin
C#
public void SetDragMargin(Side margin, float dragMargin);

Устанавливает указанное поле Side. См. также Camera2D.DragBottomMargin, Camera2D.DragTopMargin, Camera2D.DragLeftMargin и Camera2D.DragRightMargin.

Параметры
ИмяТипПо умолчанию
marginSide—
dragMarginfloat—
SetDragVerticalEnabledvoid
# SetDragVerticalEnabled
C#
public void SetDragVerticalEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetDragVerticalOffsetvoid
# SetDragVerticalOffset
C#
public void SetDragVerticalOffset(float offset);
Параметры
ИмяТипПо умолчанию
offsetfloat—
SetEnabledvoid
# SetEnabled
C#
public void SetEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetIgnoreRotationvoid
# SetIgnoreRotation
C#
public void SetIgnoreRotation(bool ignore);
Параметры
ИмяТипПо умолчанию
ignorebool—
SetLimitvoid
# SetLimit
C#
public void SetLimit(Side margin, int limit);

Устанавливает ограничение камеры для указанного Side. См. также Camera2D.LimitBottom, Camera2D.LimitTop, Camera2D.LimitLeft и Camera2D.LimitRight.

Параметры
ИмяТипПо умолчанию
marginSide—
limitint—
SetLimitDrawingEnabledvoid
# SetLimitDrawingEnabled
C#
public void SetLimitDrawingEnabled(bool limitDrawingEnabled);
Параметры
ИмяТипПо умолчанию
limitDrawingEnabledbool—
SetLimitEnabledvoid
# SetLimitEnabled
C#
public void SetLimitEnabled(bool limitEnabled);
Параметры
ИмяТипПо умолчанию
limitEnabledbool—
SetLimitSmoothingEnabledvoid
# SetLimitSmoothingEnabled
C#
public void SetLimitSmoothingEnabled(bool limitSmoothingEnabled);
Параметры
ИмяТипПо умолчанию
limitSmoothingEnabledbool—
SetMarginDrawingEnabledvoid
# SetMarginDrawingEnabled
C#
public void SetMarginDrawingEnabled(bool marginDrawingEnabled);
Параметры
ИмяТипПо умолчанию
marginDrawingEnabledbool—
SetOffsetvoid
# SetOffset
C#
public void SetOffset(Vector2 offset);
Параметры
ИмяТипПо умолчанию
offsetVector2—
SetPositionSmoothingEnabledvoid
# SetPositionSmoothingEnabled
C#
public void SetPositionSmoothingEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetPositionSmoothingSpeedvoid
# SetPositionSmoothingSpeed
C#
public void SetPositionSmoothingSpeed(float positionSmoothingSpeed);
Параметры
ИмяТипПо умолчанию
positionSmoothingSpeedfloat—
SetProcessCallbackvoid
# SetProcessCallback
C#
public void SetProcessCallback(Camera2D.Camera2DProcessCallback mode);
Параметры
ИмяТипПо умолчанию
modeCamera2D.Camera2DProcessCallback—
SetRotationSmoothingEnabledvoid
# SetRotationSmoothingEnabled
C#
public void SetRotationSmoothingEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetRotationSmoothingSpeedvoid
# SetRotationSmoothingSpeed
C#
public void SetRotationSmoothingSpeed(float speed);
Параметры
ИмяТипПо умолчанию
speedfloat—
SetScreenDrawingEnabledvoid
# SetScreenDrawingEnabled
C#
public void SetScreenDrawingEnabled(bool screenDrawingEnabled);
Параметры
ИмяТипПо умолчанию
screenDrawingEnabledbool—
SetZoomvoid
# SetZoom
C#
public void SetZoom(Vector2 zoom);
Параметры
ИмяТипПо умолчанию
zoomVector2—

Camera2D.AnchorModeEnum

ЗначениеОписание
DragCenter = 1

Положение камеры учитывает вертикальное/горизонтальное смещение и размер экрана.

FixedTopLeft = 0

Положение камеры фиксировано таким образом, что верхний левый угол всегда находится в начале координат.

Camera2D.Camera2DProcessCallback

ЗначениеОписание
Idle = 1

Камера обновляется во время обработки кадров (см. Entity.NotificationInternalProcess).

Physics = 0

Камера обновляется во время физических кадров (см. Entity.NotificationInternalPhysicsProcess).

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.