VoxelGeneratorMultipassCB
Скрипящий генератор работает на колоннах блоков и нескольких проходов.
Скрипящий генератор работает на колоннах блоков и нескольких проходов.
Этот генератор может быть реализован с помощью сценария, чтобы генерировать местность в столбах блоков, а не только по блокам.
Она позволяет использовать несколько пропусков, где каждый пропуск может получить доступ к результатам предыдущих пропусков, а также доступ к соседним колоннам.
Высота колонн не бесконечна, но можно определить, что генерирует выше и ниже, используя однопроходное резервное устройство на блок.
Она может использоваться только с VoxelTerrain.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VoxelGeneratorMultipassCBКонструктор
public VoxelGeneratorMultipassCB();Свойства3
ColumnBaseYBlocksСвойство
public int ColumnBaseYBlocks { get; set; }Самая низкая высота колонн, в блоках.
ColumnHeightBlocksСвойство
public int ColumnHeightBlocks { get; set; }Высота колонн, по блокам.
PassCountСвойство
public int PassCount { get; set; }Количество столбцов пропусков будет проходить до того, как они будут считаться полностью генерированными.
Методы12
DebugGenerateTestColumnReckfell.Collections.Array<VoxelBuffer>
public Reckfell.Collections.Array<VoxelBuffer> DebugGenerateTestColumn(Vector2I columnPositionBlocks);Метод испытания, который позволит полностью генерировать все блоки конкретной колонки и возвращать их. Эта функция не использует нитки и не использует внутренний кэш, так что она будет очень медленной. Однако, она позволяет тестировать или отладывать ваш сценарий проще, используя, например, изолированную сцену.
| Имя | Тип | По умолчанию |
|---|---|---|
columnPositionBlocks | Vector2I | — |
Reckfell.Collections.Array<VoxelBuffer>GetColumnBaseYBlocksint
public int GetColumnBaseYBlocks();intGetColumnHeightBlocksint
public int GetColumnHeightBlocks();intGetPassCountint
public int GetPassCount();intGetPassExtentBlocksint
public int GetPassExtentBlocks(int passIndex);Получает, сколько блоков пропуска может получить вокруг него (примечание: блок равен 16x16x16 вокселам по умолчанию).
| Имя | Тип | По умолчанию |
|---|---|---|
passIndex | int | — |
intSetColumnBaseYBlocksvoid
public void SetColumnBaseYBlocks(int y);| Имя | Тип | По умолчанию |
|---|---|---|
y | int | — |
SetColumnHeightBlocksvoid
public void SetColumnHeightBlocks(int y);| Имя | Тип | По умолчанию |
|---|---|---|
y | int | — |
SetPassCountvoid
public void SetPassCount(int count);| Имя | Тип | По умолчанию |
|---|---|---|
count | int | — |
SetPassExtentBlocksvoid
public void SetPassExtentBlocks(int passIndex, int extent);Устанавливает, сколько блоков пропуск может войти вокруг колонок, когда они генерируют (примечание: блок равен 16x16x16 вокселям по умолчанию). По замыслу, первый пропуск не пропускается к соседям, так что он останется нулевым. Последующие пропуска предназначены для доступа по крайней мере в одном квартале. Такие пропуска не поддерживают 0, потому что это было бы так же, как просто положить вашу логику в предыдущий пропуск. Увеличение масштабов также приведет к увеличению стоимости генератора как с точки зрения памяти, так и с точки зрения времени обработки данных, поэтому он должен быть сбалансирован с осторожностью.
| Имя | Тип | По умолчанию |
|---|---|---|
passIndex | int | — |
extent | int | — |
_GenerateBlockFallbackvoid
public virtual void _GenerateBlockFallback(VoxelBuffer outBuffer, Vector3I originInVoxels);Призвал каждый блок генерировать над или ниже региона, основанного на столбцах. Например, вы можете принять решение генерировать воздух выше и заложить фундамент ниже.
| Имя | Тип | По умолчанию |
|---|---|---|
outBuffer | VoxelBuffer | — |
originInVoxels | Vector3I | — |
_GeneratePassvoid
public virtual void _GeneratePass(VoxelToolMultipassGenerator voxelTool, int passIndex);Один раз за один пропуск по каждой колонке блоков.
Прошедший voxel_tool Для получения информации о зоне для создания и заполнения/отредактирования этой области с помощью вокселей. Важно: не сохранять этот объект в переменной для последующего повторного использования. Вы можете использовать его только в текущем вызове к этому методу.
Вы можете использовать pass_index Например, 0 может быть основанием для зашумления Перлина, 1 может сажать деревья и другие конструкции.
######поглощаемые_канели_маскированные
| Имя | Тип | По умолчанию |
|---|---|---|
voxelTool | VoxelToolMultipassGenerator | — |
passIndex | int | — |
_GetUsedChannelsMaskint
public virtual int _GetUsedChannelsMask();Используйте это, чтобы указать, какие каналы будет использовать ваш генератор. Он возвращает битмаск, так что, например, вы можете предоставить такую информацию: (1 << channel1) | (1 << channel2)
intПоля и константы2
MaxPassExtentПоле
public const long MaxPassExtent = 2;MaxPassesПоле
public const long MaxPasses = 4;