VoxelGeneratorScript
Базовый класс для генераторов, определенных скриптом.
Базовый класс для генераторов, определенных скриптом.
Важно: этот двигатель сильно использует нити. Генераторы будут работать в одной из них, так что убедитесь, что вы не получите доступ к дереву сцены или другим небезопасным API внутри генератора.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VoxelGeneratorScriptКонструктор
public VoxelGeneratorScript();Методы2
_GenerateBlockvoid
public virtual void _GenerateBlock(VoxelBuffer outBuffer, Vector3I originInVoxels, int lod);out_buffer: : : : Ѕуфер, в котором можно заложить данные о вокселе. ќн никогда не будет null и будет иметь требуемый размер. Он действителен только для этой функции, не храните его нигде после окончания. Примечание: этот буфер может иметь любой непустый размер, но некоторые предположения могут быть сделаны в зависимости от того, какой узор местности вы используете. VoxelTerrain всегда будет запрашивать блоки размера 16x16x16, но VoxelLodTerrain может запрашивать блоки разного размера.
origin_in_voxelsКоординаты нижнего угла коробки для создания по отношению к LOD0. out_buffer.
lod: Уровень детализации для этого блока. Его можно игнорировать, если вы не используете LOD. Это может быть использовано как мощность в два раза, говорящая о том, насколько большой один воксел. Например, если вы используете петлю для заполнения буфера с помощью шума, вы должны отбирать этот шум на этапах 2°С, начиная с 2°С origin_in_voxels (в коде вы можете использовать 1 << lod для быстрых вычислений вместо pow(2, lod)Возможно, вы захотите выделить переменные, чтобы итерировать координаты в out_buffer и переменные, используемые для создания вокселовых значений в космосе.
######поглощаемые_канели_маскированные
| Имя | Тип | По умолчанию |
|---|---|---|
outBuffer | VoxelBuffer | — |
originInVoxels | Vector3I | — |
lod | int | — |
_GetUsedChannelsMaskint
public virtual int _GetUsedChannelsMask();Используйте это, чтобы указать, какие каналы будет использовать ваш генератор. Он возвращает битмаск, так что, например, вы можете предоставить такую информацию: (1 << channel1) | (1 << channel2)
int