reckfellENGINE

VoxelTerrain

Воксельный объем с использованием постоянного уровня детализации.

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

Воксельный объем с использованием постоянного уровня детализации.

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

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

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

Свойства17

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

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

BlockEnterNotificationEnabledСвойство
# BlockEnterNotificationEnabled
C#
public bool BlockEnterNotificationEnabled { get; set; }
BoundsСвойство
# Bounds
C#
public Aabb Bounds { get; set; }

Определяет границы, в пределах которых земля может иметь вокселы. Если будет использоваться бесконечное мировое генератор, блоки будут генерировать только внутри этого региона. Все снаружи останется пустым. Если любое измерение новых границ превышает 512, и VoxelTerrain.MaxViewDistance больше 512, тогда VoxelTerrain.MaxViewDistance 512. Эта мера направлена на то, чтобы избежать крушения из-за потенциального огромного количества кусочков, которые могли бы загрузиться.

CollisionLayerСвойство
# CollisionLayer
C#
public int CollisionLayer { get; set; }
CollisionMarginСвойство
# CollisionMargin
C#
public float CollisionMargin { get; set; }
CollisionMaskСвойство
# CollisionMask
C#
public int CollisionMask { get; set; }
DebugDrawEnabledСвойство
# DebugDrawEnabled
C#
public bool DebugDrawEnabled { get; set; }
DebugDrawShadowOccludersСвойство
# DebugDrawShadowOccluders
C#
public bool DebugDrawShadowOccluders { get; set; }
DebugDrawVisualAndCollisionBlocksСвойство
# DebugDrawVisualAndCollisionBlocks
C#
public bool DebugDrawVisualAndCollisionBlocks { get; set; }
DebugDrawVolumeBoundsСвойство
# DebugDrawVolumeBounds
C#
public bool DebugDrawVolumeBounds { get; set; }
DebugDrawVoxelMetadataСвойство
# DebugDrawVoxelMetadata
C#
public bool DebugDrawVoxelMetadata { get; set; }
GenerateCollisionsСвойство
# GenerateCollisions
C#
public bool GenerateCollisions { get; set; }

Включает создание форм столкновения с помощью классического физического двигателя. Используйте эту функцию, если вам нужны реалистичные или нетривиальные столкновения или физика. Примечание 1: Вам также нужно VoxelViewer Запрашивать столкновения, иначе они не будут генерировать. Примечание 2: Если вам нужен простой шахтер/AABB Физика, ты можешь использовать VoxelBoxMover Которые могут быть лучше в закулисных мирах.

MaterialOverrideСвойство
# MaterialOverride
C#
public Material MaterialOverride { get; set; }
MaxViewDistanceСвойство
# MaxViewDistance
C#
public int MaxViewDistance { get; set; }

Устанавливает максимальное расстояние, которое эта местность может поддерживать. VoxelViewer Запрашиваю больше, он будет зажат.

MeshBlockSizeСвойство
# MeshBlockSize
C#
public uint MeshBlockSize { get; set; }

Устанавливает, сколько вокселов по всей местности. Воксельные куски хранятся в кубических кусках 16x16x16, и по умолчанию меши местности соответствуют этому размеру. Но вы можете установить это на 32, так что ячеек будет иметь 2x2x2 вокселовые кусочки. Это компромисс по эффективности. Более высокий размер ячеек может ускорить трансформацию за счет более медленных сетчатых обновлений. Значения, отличные от 16 и 32, не поддерживаются. Примечание: эта регулировка также влияет VoxelInstancer Кусочки.

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

Включает генерацию блока GPU, которая может ускорить его. Это применимо только для генераторов, которые поддерживают его. Вулкан требуется.

Методы42

DataBlockToVoxelVector3I
# DataBlockToVoxel
C#
public Vector3I DataBlockToVoxel(Vector3I blockPos);

Преобразует координаты блока данных во воксельные координаты.

Параметры
ИмяТипПо умолчанию
blockPosVector3I—
Возвращает Vector3I
DebugGetDrawFlagbool
# DebugGetDrawFlag
C#
public bool DebugGetDrawFlag(VoxelTerrain.DebugDrawFlag flagIndex);
Параметры
ИмяТипПо умолчанию
flagIndexVoxelTerrain.DebugDrawFlag—
Возвращает bool
DebugGetDrawShadowOccludersbool
# DebugGetDrawShadowOccluders
C#
public bool DebugGetDrawShadowOccluders();
Возвращает bool
DebugIsDrawEnabledbool
# DebugIsDrawEnabled
C#
public bool DebugIsDrawEnabled();
Возвращает bool
DebugSetDrawEnabledvoid
# DebugSetDrawEnabled
C#
public void DebugSetDrawEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
DebugSetDrawFlagvoid
# DebugSetDrawFlag
C#
public void DebugSetDrawFlag(VoxelTerrain.DebugDrawFlag flagIndex, bool enabled);
Параметры
ИмяТипПо умолчанию
flagIndexVoxelTerrain.DebugDrawFlag—
enabledbool—
DebugSetDrawShadowOccludersvoid
# DebugSetDrawShadowOccluders
C#
public void DebugSetDrawShadowOccluders(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
GetBoundsAabb
# GetBounds
C#
public Aabb GetBounds();
Возвращает Aabb
GetCollisionLayerint
# GetCollisionLayer
C#
public int GetCollisionLayer();
Возвращает int
GetCollisionMarginfloat
# GetCollisionMargin
C#
public float GetCollisionMargin();
Возвращает float
GetCollisionMaskint
# GetCollisionMask
C#
public int GetCollisionMask();
Возвращает int
GetDataBlockSizeuint
# GetDataBlockSize
C#
public uint GetDataBlockSize();
Возвращает uint
GetGenerateCollisionsbool
# GetGenerateCollisions
C#
public bool GetGenerateCollisions();
Возвращает bool
GetGeneratorUseGpubool
# GetGeneratorUseGpu
C#
public bool GetGeneratorUseGpu();
Возвращает bool
GetMaterialOverrideMaterial
# GetMaterialOverride
C#
public Material GetMaterialOverride();
Возвращает Material
GetMaxViewDistanceint
# GetMaxViewDistance
C#
public int GetMaxViewDistance();
Возвращает int
GetMeshBlockSizeuint
# GetMeshBlockSize
C#
public uint GetMeshBlockSize();
Возвращает uint
GetStatisticsReckfell.Collections.Dictionary
# GetStatistics
C#
public Reckfell.Collections.Dictionary GetStatistics();

Получает отладочную информацию о том, сколько времени потрачено на обработку местности. Вернутый словарь имеет следующую структуру:

Текст
{
    "time_detect_required_blocks": int,
    "time_request_blocks_to_load": int,
    "time_process_load_responses": int,
    "time_request_blocks_to_update": int,
    "time_process_update_responses": int,
    "remaining_main_thread_blocks": int,
    "dropped_block_loads": int,
    "dropped_block_meshs": int,
    "updated_blocks": int
}
Возвращает Reckfell.Collections.Dictionary
GetViewerNetworkPeerIdsInAreaint[]
# GetViewerNetworkPeerIdsInArea
C#
public int[] GetViewerNetworkPeerIdsInArea(Vector3I areaOrigin, Vector3I areaSize);
Параметры
ИмяТипПо умолчанию
areaOriginVector3I—
areaSizeVector3I—
Возвращает int[]
HasDataBlockbool
# HasDataBlock
C#
public bool HasDataBlock(Vector3I blockPosition);
Параметры
ИмяТипПо умолчанию
blockPositionVector3I—
Возвращает bool
IsAreaEditNotificationEnabledbool
# IsAreaEditNotificationEnabled
C#
public bool IsAreaEditNotificationEnabled();
Возвращает bool
IsAreaMeshedbool
# IsAreaMeshed
C#
public bool IsAreaMeshed(Aabb areaInVoxels);

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

Параметры
ИмяТипПо умолчанию
areaInVoxelsAabb—
Возвращает bool
IsAutomaticLoadingEnabledbool
# IsAutomaticLoadingEnabled
C#
public bool IsAutomaticLoadingEnabled();
Возвращает bool
IsBlockEnterNotificationEnabledbool
# IsBlockEnterNotificationEnabled
C#
public bool IsBlockEnterNotificationEnabled();
Возвращает bool
SaveBlockvoid
# SaveBlock
C#
public void SaveBlock(Vector3I position);

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

Параметры
ИмяТипПо умолчанию
positionVector3I—
SaveModifiedBlocksVoxelSaveCompletionTracker
# SaveModifiedBlocks
C#
public VoxelSaveCompletionTracker SaveModifiedBlocks();

Все модифицированные блоки должны быть спасены. Примечание 1: это будет иметь последствия только в том случае, если установка потока на этой местности будет способствовать спасению. Примечание 2: Сбережение является асинхронным и не блокирует игру. Сохранение может завершиться лишь через короткое время после того, как вы назовете этот метод. Используйте возвращенный объект для слежения, чтобы знать, когда сбережение завершено. Однако, сбережения, произведенные после вызова этого метода, не будут отслеживаться этим объектом. Заметьте, что блоки, разгружаемые по мере перемещения зрителя, могут также приводить к сохранению задач независимо от этой функции.

Возвращает VoxelSaveCompletionTracker
SetAreaEditNotificationEnabledvoid
# SetAreaEditNotificationEnabled
C#
public void SetAreaEditNotificationEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetAutomaticLoadingEnabledvoid
# SetAutomaticLoadingEnabled
C#
public void SetAutomaticLoadingEnabled(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetBlockEnterNotificationEnabledvoid
# SetBlockEnterNotificationEnabled
C#
public void SetBlockEnterNotificationEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetBoundsvoid
# SetBounds
C#
public void SetBounds(Aabb bounds);
Параметры
ИмяТипПо умолчанию
boundsAabb—
SetCollisionLayervoid
# SetCollisionLayer
C#
public void SetCollisionLayer(int layer);
Параметры
ИмяТипПо умолчанию
layerint—
SetCollisionMarginvoid
# SetCollisionMargin
C#
public void SetCollisionMargin(float margin);
Параметры
ИмяТипПо умолчанию
marginfloat—
SetCollisionMaskvoid
# SetCollisionMask
C#
public void SetCollisionMask(int mask);
Параметры
ИмяТипПо умолчанию
maskint—
SetGenerateCollisionsvoid
# SetGenerateCollisions
C#
public void SetGenerateCollisions(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetGeneratorUseGpuvoid
# SetGeneratorUseGpu
C#
public void SetGeneratorUseGpu(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetMaterialOverridevoid
# SetMaterialOverride
C#
public void SetMaterialOverride(Material material);
Параметры
ИмяТипПо умолчанию
materialMaterial—
SetMaxViewDistancevoid
# SetMaxViewDistance
C#
public void SetMaxViewDistance(int distanceInVoxels);
Параметры
ИмяТипПо умолчанию
distanceInVoxelsint—
SetMeshBlockSizevoid
# SetMeshBlockSize
C#
public void SetMeshBlockSize(uint size);
Параметры
ИмяТипПо умолчанию
sizeuint—
TrySetBlockDatabool
# TrySetBlockData
C#
public bool TrySetBlockData(Vector3I position, VoxelBuffer voxels);
Параметры
ИмяТипПо умолчанию
positionVector3I—
voxelsVoxelBuffer—
Возвращает bool
VoxelToDataBlockVector3I
# VoxelToDataBlock
C#
public Vector3I VoxelToDataBlock(Vector3 voxelPos);
Параметры
ИмяТипПо умолчанию
voxelPosVector3—
Возвращает Vector3I
_OnAreaEditedvoid
# _OnAreaEdited
C#
public virtual void _OnAreaEdited(Vector3I areaOrigin, Vector3I areaSize);
Параметры
ИмяТипПо умолчанию
areaOriginVector3I—
areaSizeVector3I—
_OnDataBlockEnteredvoid
# _OnDataBlockEntered
C#
public virtual void _OnDataBlockEntered(VoxelDataBlockEnterInfo info);
Параметры
ИмяТипПо умолчанию
infoVoxelDataBlockEnterInfo—

Сигналы и события4

BlockLoadedСобытие
# BlockLoaded
C#
public event VoxelTerrain.BlockLoadedEventHandler BlockLoaded;

Включено при загрузке нового блока данных из потока. Это может произойти до появления сетчатки или коллайдера.

Параметры обработчика
ИмяТипПо умолчанию
positionVector3I—
BlockUnloadedСобытие
# BlockUnloaded
C#
public event VoxelTerrain.BlockUnloadedEventHandler BlockUnloaded;

Включено при выгрузке блока данных из-за внешнего расстояния обзора.

Параметры обработчика
ИмяТипПо умолчанию
positionVector3I—
MeshBlockEnteredСобытие
# MeshBlockEntered
C#
public event VoxelTerrain.MeshBlockEnteredEventHandler MeshBlockEntered;

Приемлемо, когда блок сетчатки получает свое первое обновление после того, как он был добавлен в диапазон зрителей. Это независимо от пустости сетки. Он отслеживает изменения того же состояния, полученного с помощью VoxelTerrain.IsAreaMeshed.

Параметры обработчика
ИмяТипПо умолчанию
positionVector3I—
MeshBlockExitedСобытие
# MeshBlockExited
C#
public event VoxelTerrain.MeshBlockExitedEventHandler MeshBlockExited;

Взято, когда разгружается сетчатый блок. VoxelTerrain.MeshBlockEntered.

Параметры обработчика
ИмяТипПо умолчанию
positionVector3I—

VoxelTerrain.DebugDrawFlag

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

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

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

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