Как узнать количество ячеек рельефа каждого материала в области сферы? - PullRequest
0 голосов
/ 01 ноября 2019

Я знаю рабочее пространство функции. Terrain:FillBall(Position, Radius, Enum.Material.Air) должен удалить всю местность в шаре с радиусом в позиции, но как я могу вернуть массив, содержащий количество ячеек каждого материала (если они есть), которые были смещены? В основном, я хочу, чтобы ReadVoxels (), но принимает точку + радиус вместо region3.

function ClearTerrain(Position)
    workspace.Terrain:FillBall(Position, 8, Enum.Material.Air)
    --Return a table in this format {{Enum.Material.Rock, 8}, {Enum.Material.Basalt, 10}} for example, to know how many cells of each material were replaced with air. 
end

Этот пример может быть в случае, если 8 каменных и 10 базальтовых ячеек были разрушены.

Проблема с workspace.Terrain:ReadVoxels() состоит в том, что она возвращает результаты, которые остальная часть моей программы не может проанализироватьи проверяет клетки в форме блока, а не шара. Подход, который я, возможно, хочу использовать, заключается в том, чтобы один раз перечитать, очистить область, снова прочитать те же самые воксели и вычесть, чтобы игнорировать ячейки, которые остались прежними. Затем проанализируйте результаты в формате, указанном в блоке кода выше. Хотя этому может не хватать эффективности, и я не совсем понимаю, как анализировать результаты.

srsly tho, почему никто даже не пытается ответить на мой вопрос.

...