Học
Lớp công cụ
Terrain
Không Thể Tạo

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm tắt

Phương Pháp
AutowedgeCell(x: number,y: number,z: number):boolean
Đã Lỗi Thời
AutowedgeCells(region: Region3int16):()
Đã Lỗi Thời
Clear():()
ConvertToSmooth():()
Đã Lỗi Thời
FillBall(center: Vector3,radius: number,material: Enum.Material):()
FillBlock(cframe: CFrame,size: Vector3,material: Enum.Material):()
FillCylinder(cframe: CFrame,height: number,radius: number,material: Enum.Material):()
FillRegion(region: Region3,resolution: number,material: Enum.Material):()
FillWedge(cframe: CFrame,size: Vector3,material: Enum.Material):()
GetCell(x: number,y: number,z: number):Tuple
Đã Lỗi Thời
GetWaterCell(x: number,y: number,z: number):Tuple
Đã Lỗi Thời
PasteRegion(region: TerrainRegion,corner: Vector3int16,pasteEmptyCells: boolean):()
ReadVoxelChannels(region: Region3,resolution: number,channelIds: {any}):Dictionary
ReadVoxels(region: Region3,resolution: number):Tuple
ReplaceMaterial(region: Region3,resolution: number,sourceMaterial: Enum.Material,targetMaterial: Enum.Material):()
ResetMaterialSlot(slotIndex: number):()
SetCell(x: number,y: number,z: number,material: Enum.CellMaterial,block: Enum.CellBlock,orientation: Enum.CellOrientation):()
Đã Lỗi Thời
SetCells(region: Region3int16,material: Enum.CellMaterial,block: Enum.CellBlock,orientation: Enum.CellOrientation):()
Đã Lỗi Thời
SetMaterialSlot(slotIndex: number,baseMaterial: Enum.Material,materialVariant: string,color: Color3):()
SetWaterCell(x: number,y: number,z: number,force: Enum.WaterForce,direction: Enum.WaterDirection):()
Đã Lỗi Thời
WriteVoxelChannels(region: Region3,resolution: number,channels: Dictionary):()
WriteVoxels(region: Region3,resolution: number,materials: {any},occupancy: {any}):()
Thành viên kế thừa

Tài Liệu Tham Khảo API
Thuộc Tính
Decoration
Đọc Song Song
Các khả năng: Environment
Terrain.Decoration:boolean

GrassLength
Đọc Song Song
Các khả năng: Environment
Terrain.GrassLength:number

IsSmooth
Đã Lỗi Thời

MaterialColors
Không Thể Viết Kịch Bản
Đọc Song Song
Các khả năng: Environment
Terrain.MaterialColors:BinaryString

MaxExtents
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Environment
Terrain.MaxExtents:Region3int16

WaterColor
Đọc Song Song
Các khả năng: Environment
Terrain.WaterColor:Color3

WaterReflectance
Đọc Song Song
Các khả năng: Environment
Terrain.WaterReflectance:number

WaterTransparency
Đọc Song Song
Các khả năng: Environment
Terrain.WaterTransparency:number

WaterWaveSize
Đọc Song Song
Các khả năng: Environment
Terrain.WaterWaveSize:number

WaterWaveSpeed
Đọc Song Song
Các khả năng: Environment
Terrain.WaterWaveSpeed:number

Phương Pháp
AutowedgeCell
Đã Lỗi Thời

AutowedgeCells
Đã Lỗi Thời

CellCenterToWorld
Các khả năng: Environment
Terrain:CellCenterToWorld(
Tham Số
Lợi Nhuận

CellCornerToWorld
Các khả năng: Environment
Terrain:CellCornerToWorld(
Tham Số
Lợi Nhuận

Clear
Các khả năng: Environment
Terrain:Clear():()
Lợi Nhuận
()

ConvertToSmooth
Đã Lỗi Thời

CopyRegion
Các khả năng: Environment
Terrain:CopyRegion(region:Region3int16):TerrainRegion
Tham Số
Lợi Nhuận
Mẫu mã
Terrain:CopyRegion()
local terrainRegion = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
workspace.Terrain:Clear()
task.wait(5)
workspace.Terrain:PasteRegion(terrainRegion, workspace.Terrain.MaxExtents.Min, true)

CountCells
Các khả năng: Environment
Terrain:CountCells():number
Lợi Nhuận

FillBall
Các khả năng: Environment
Terrain:FillBall(
center:Vector3, radius:number, material:Enum.Material
):()
Tham Số
center:Vector3
radius:number
material:Enum.Material
Lợi Nhuận
()

FillBlock
Các khả năng: Environment
Terrain:FillBlock(
cframe:CFrame, size:Vector3, material:Enum.Material
):()
Tham Số
cframe:CFrame
size:Vector3
material:Enum.Material
Lợi Nhuận
()

FillCylinder
Các khả năng: Environment
Terrain:FillCylinder(
cframe:CFrame, height:number, radius:number, material:Enum.Material
):()
Tham Số
cframe:CFrame
height:number
radius:number
material:Enum.Material
Lợi Nhuận
()

FillRegion
Các khả năng: Environment
Terrain:FillRegion(
region:Region3, resolution:number, material:Enum.Material
):()
Tham Số
region:Region3
resolution:number
material:Enum.Material
Lợi Nhuận
()

FillWedge
Các khả năng: Environment
Terrain:FillWedge(
cframe:CFrame, size:Vector3, material:Enum.Material
):()
Tham Số
cframe:CFrame
size:Vector3
material:Enum.Material
Lợi Nhuận
()

GetCell
Đã Lỗi Thời

GetMaterialColor
Ghi Song Song
Các khả năng: Environment
Terrain:GetMaterialColor(material:Enum.Material):Color3
Tham Số
material:Enum.Material
Lợi Nhuận

GetMaterialSlot
Các khả năng: Environment
Terrain:GetMaterialSlot(slotIndex:number):Tuple
Tham Số
slotIndex:number
Lợi Nhuận
Mẫu mã
Các Khe Vật Liệu Địa Hình
local MaterialService = game:GetService("MaterialService")
local Terrain = workspace.Terrain
-- Các khe từ 2 đến 63 có thể ghi; khe 0 và 1 được dành cho Không khí và Nước
local SLOT_INDEX = 2
local BASE_MATERIAL = Enum.Material.Grass
local VARIANT_NAME = "SwampVariant"
-- Tìm một MaterialVariant hiện có cho vật liệu cơ bản, hoặc tạo một cái mới
-- SetMaterialSlot() mong đợi tên của biến thể, không phải tên hiển thị của Trình quản lý Vật liệu
local variant = MaterialService:FindFirstChild(VARIANT_NAME)
if not variant then
variant = Instance.new("MaterialVariant")
variant.Name = VARIANT_NAME
variant.BaseMaterial = BASE_MATERIAL
variant.Parent = MaterialService
end
-- Cấu hình khe với vật liệu cơ bản, tên MaterialVariant, và một màu sắc
-- Truyền một chuỗi rỗng thay vì tên biến thể để sử dụng diện mạo mặc định của vật liệu cơ bản được tô màu bởi màu đã cho
Terrain:SetMaterialSlot(SLOT_INDEX, BASE_MATERIAL, variant.Name, Color3.fromRGB(50, 60, 30))
local baseMaterial, materialVariant, color = Terrain:GetMaterialSlot(SLOT_INDEX)
print(baseMaterial, materialVariant, color)
-- Ghi một vùng voxel tham chiếu đến khe theo chỉ số, thay vì theo Enum.Material, sử dụng kênh SolidMaterialIndex
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 16, 16)):ExpandToGrid(4)
local size = region.Size / 4
local materialIndices = {}
local occupancies = {}
for x = 1, size.X do
materialIndices[x] = {}
occupancies[x] = {}
for y = 1, size.Y do
materialIndices[x][y] = {}
occupancies[x][y] = {}
for z = 1, size.Z do
materialIndices[x][y][z] = SLOT_INDEX
occupancies[x][y][z] = 1
end
end
end
Terrain:WriteVoxelChannels(region, 4, {
SolidMaterialIndex = materialIndices,
SolidOccupancy = occupancies,
})
-- Xóa khe sẽ khiến các voxel tham chiếu đến nó được hiển thị là không hợp lệ cho đến khi chúng được vẽ lại với một chỉ số khe hợp lệ
Terrain:ResetMaterialSlot(SLOT_INDEX)

GetWaterCell
Đã Lỗi Thời

PasteRegion
Các khả năng: Environment
Terrain:PasteRegion(
region:TerrainRegion, corner:Vector3int16, pasteEmptyCells:boolean
):()
Tham Số
pasteEmptyCells:boolean
Lợi Nhuận
()
Mẫu mã
Tạo, Sao chép và Dán Địa hình
local Terrain = workspace.Terrain
-- Tạo một vùng địa hình đơn giản
local initialRegion = Region3.new(Vector3.zero, Vector3.one * 10)
Terrain:FillRegion(initialRegion, 4, Enum.Material.Grass)
-- Sao chép vùng đó
local copyRegion = Region3int16.new(Vector3int16.new(0, 0, 0), Vector3int16.new(10, 10, 10))
local copiedRegion = Terrain:CopyRegion(copyRegion)
-- Định nghĩa nơi để dán vùng này
local newRegionCorner = Vector3int16.new(5, 0, 0)
-- Dán vùng này
Terrain:PasteRegion(copiedRegion, newRegionCorner, true)

ReadVoxelChannels
Ghi Song Song
Các khả năng: Environment
Terrain:ReadVoxelChannels(
region:Region3, resolution:number, channelIds:{any}
Tham Số
region:Region3
resolution:number
channelIds:{any}
Lợi Nhuận
Mẫu mã
Terrain:ReadVoxelChannels()
local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local channelOutput = terrain:ReadVoxelChannels(region, 4, { "SolidOccupancy", "SolidMaterial", "LiquidOccupancy" })
local size = channelOutput.Size
for x = 1, size.X do
for y = 1, size.Y do
for z = 1, size.Z do
print(
("(%2i, %2i, %2i): %.2f %s %.2f"):format(
x,
y,
z,
channelOutput.SolidOccupancy[x][y][z],
channelOutput.SolidMaterial[x][y][z].Name,
channelOutput.LiquidOccupancy[x][y][z]
)
)
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReadVoxels
Ghi Song Song
Các khả năng: Environment
Terrain:ReadVoxels(
region:Region3, resolution:number
Tham Số
region:Region3
resolution:number
Lợi Nhuận
Mẫu mã
Terrain:ReadVoxels()
local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local materials, occupancies = terrain:ReadVoxels(region, 4)
local size = materials.Size -- Cùng với occupancies.Size
for x = 1, size.X, 1 do
for y = 1, size.Y, 1 do
for z = 1, size.Z, 1 do
print(("(%2i, %2i, %2i): %.2f %s"):format(x, y, z, occupancies[x][y][z], materials[x][y][z].Name))
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReplaceMaterial
Các khả năng: Environment
Terrain:ReplaceMaterial(
region:Region3, resolution:number, sourceMaterial:Enum.Material, targetMaterial:Enum.Material
):()
Tham Số
region:Region3
resolution:number
sourceMaterial:Enum.Material
targetMaterial:Enum.Material
Lợi Nhuận
()
Mẫu mã
Terrain:ReplaceMaterial
local terrain = workspace.Terrain
local region = Region3.new(Vector3.new(-20, -20, -20), Vector3.new(20, 20, 20))
local resolution = 4
local materialToReplace = Enum.Material.Grass
local replacementMaterial = Enum.Material.Asphalt
terrain:ReplaceMaterial(region, resolution, materialToReplace, replacementMaterial)

ResetMaterialSlot
Các khả năng: Environment
Terrain:ResetMaterialSlot(slotIndex:number):()
Tham Số
slotIndex:number
Lợi Nhuận
()
Mẫu mã
Các Khe Vật Liệu Địa Hình
local MaterialService = game:GetService("MaterialService")
local Terrain = workspace.Terrain
-- Các khe từ 2 đến 63 có thể ghi; khe 0 và 1 được dành cho Không khí và Nước
local SLOT_INDEX = 2
local BASE_MATERIAL = Enum.Material.Grass
local VARIANT_NAME = "SwampVariant"
-- Tìm một MaterialVariant hiện có cho vật liệu cơ bản, hoặc tạo một cái mới
-- SetMaterialSlot() mong đợi tên của biến thể, không phải tên hiển thị của Trình quản lý Vật liệu
local variant = MaterialService:FindFirstChild(VARIANT_NAME)
if not variant then
variant = Instance.new("MaterialVariant")
variant.Name = VARIANT_NAME
variant.BaseMaterial = BASE_MATERIAL
variant.Parent = MaterialService
end
-- Cấu hình khe với vật liệu cơ bản, tên MaterialVariant, và một màu sắc
-- Truyền một chuỗi rỗng thay vì tên biến thể để sử dụng diện mạo mặc định của vật liệu cơ bản được tô màu bởi màu đã cho
Terrain:SetMaterialSlot(SLOT_INDEX, BASE_MATERIAL, variant.Name, Color3.fromRGB(50, 60, 30))
local baseMaterial, materialVariant, color = Terrain:GetMaterialSlot(SLOT_INDEX)
print(baseMaterial, materialVariant, color)
-- Ghi một vùng voxel tham chiếu đến khe theo chỉ số, thay vì theo Enum.Material, sử dụng kênh SolidMaterialIndex
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 16, 16)):ExpandToGrid(4)
local size = region.Size / 4
local materialIndices = {}
local occupancies = {}
for x = 1, size.X do
materialIndices[x] = {}
occupancies[x] = {}
for y = 1, size.Y do
materialIndices[x][y] = {}
occupancies[x][y] = {}
for z = 1, size.Z do
materialIndices[x][y][z] = SLOT_INDEX
occupancies[x][y][z] = 1
end
end
end
Terrain:WriteVoxelChannels(region, 4, {
SolidMaterialIndex = materialIndices,
SolidOccupancy = occupancies,
})
-- Xóa khe sẽ khiến các voxel tham chiếu đến nó được hiển thị là không hợp lệ cho đến khi chúng được vẽ lại với một chỉ số khe hợp lệ
Terrain:ResetMaterialSlot(SLOT_INDEX)

SetCell
Đã Lỗi Thời

SetCells
Đã Lỗi Thời

SetMaterialColor
Các khả năng: Environment
Terrain:SetMaterialColor(
material:Enum.Material, value:Color3
):()
Tham Số
material:Enum.Material
value:Color3
Lợi Nhuận
()

SetMaterialSlot
Các khả năng: Environment
Terrain:SetMaterialSlot(
slotIndex:number, baseMaterial:Enum.Material, materialVariant:string, color:Color3
):()
Tham Số
slotIndex:number
baseMaterial:Enum.Material
materialVariant:string
color:Color3
Lợi Nhuận
()
Mẫu mã
Các Khe Vật Liệu Địa Hình
local MaterialService = game:GetService("MaterialService")
local Terrain = workspace.Terrain
-- Các khe từ 2 đến 63 có thể ghi; khe 0 và 1 được dành cho Không khí và Nước
local SLOT_INDEX = 2
local BASE_MATERIAL = Enum.Material.Grass
local VARIANT_NAME = "SwampVariant"
-- Tìm một MaterialVariant hiện có cho vật liệu cơ bản, hoặc tạo một cái mới
-- SetMaterialSlot() mong đợi tên của biến thể, không phải tên hiển thị của Trình quản lý Vật liệu
local variant = MaterialService:FindFirstChild(VARIANT_NAME)
if not variant then
variant = Instance.new("MaterialVariant")
variant.Name = VARIANT_NAME
variant.BaseMaterial = BASE_MATERIAL
variant.Parent = MaterialService
end
-- Cấu hình khe với vật liệu cơ bản, tên MaterialVariant, và một màu sắc
-- Truyền một chuỗi rỗng thay vì tên biến thể để sử dụng diện mạo mặc định của vật liệu cơ bản được tô màu bởi màu đã cho
Terrain:SetMaterialSlot(SLOT_INDEX, BASE_MATERIAL, variant.Name, Color3.fromRGB(50, 60, 30))
local baseMaterial, materialVariant, color = Terrain:GetMaterialSlot(SLOT_INDEX)
print(baseMaterial, materialVariant, color)
-- Ghi một vùng voxel tham chiếu đến khe theo chỉ số, thay vì theo Enum.Material, sử dụng kênh SolidMaterialIndex
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 16, 16)):ExpandToGrid(4)
local size = region.Size / 4
local materialIndices = {}
local occupancies = {}
for x = 1, size.X do
materialIndices[x] = {}
occupancies[x] = {}
for y = 1, size.Y do
materialIndices[x][y] = {}
occupancies[x][y] = {}
for z = 1, size.Z do
materialIndices[x][y][z] = SLOT_INDEX
occupancies[x][y][z] = 1
end
end
end
Terrain:WriteVoxelChannels(region, 4, {
SolidMaterialIndex = materialIndices,
SolidOccupancy = occupancies,
})
-- Xóa khe sẽ khiến các voxel tham chiếu đến nó được hiển thị là không hợp lệ cho đến khi chúng được vẽ lại với một chỉ số khe hợp lệ
Terrain:ResetMaterialSlot(SLOT_INDEX)

SetWaterCell
Đã Lỗi Thời

WorldToCell
Các khả năng: Environment
Terrain:WorldToCell(position:Vector3):Vector3
Tham Số
position:Vector3
Lợi Nhuận

WorldToCellPreferEmpty
Các khả năng: Environment
Terrain:WorldToCellPreferEmpty(position:Vector3):Vector3
Tham Số
position:Vector3
Lợi Nhuận

WorldToCellPreferSolid
Các khả năng: Environment
Terrain:WorldToCellPreferSolid(position:Vector3):Vector3
Tham Số
position:Vector3
Lợi Nhuận

WriteVoxelChannels
Các khả năng: Environment
Terrain:WriteVoxelChannels(
region:Region3, resolution:number, channels:Dictionary
):()
Tham Số
region:Region3
resolution:number
channels:Dictionary
Lợi Nhuận
()
Mẫu mã
Terrain:WriteVoxelChannels()
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(64, 32, 64))
local RESOLUTION = 4
local OCC_EPSILON = 1 / 256
local function generateRandomTerrainInRegion(regionInput)
local region = regionInput:ExpandToGrid(4)
local size = region.Size / 4
local solidMaterials = {}
local solidOccupancies = {}
local waterOcc = {}
for x = 1, size.X do
table.insert(solidMaterials, {})
table.insert(solidOccupancies, {})
table.insert(waterOcc, {})
for y = 1, size.Y do
table.insert(solidMaterials[x], {})
table.insert(solidOccupancies[x], {})
table.insert(waterOcc[x], {})
for z = 1, size.Z do
local mat = if math.random() < 0.5 then Enum.Material.Air else Enum.Material.Sand
local occ = 0
local water = math.random()
if mat == Enum.Material.Sand then
occ = math.random() / 2 + 0.5
if occ > 1 - OCC_EPSILON then
water = 0 -- Chất rắn không thể chứa nước
end
else
occ = 0
end
table.insert(solidMaterials[x][y], mat)
table.insert(solidOccupancies[x][y], occ)
table.insert(waterOcc[x][y], water)
end
end
end
return { SolidMaterial = solidMaterials, SolidOccupancy = solidOccupancies, LiquidOccupancy = waterOcc }
end
local regionContent = generateRandomTerrainInRegion(region)
workspace.Terrain:WriteVoxelChannels(region, 4, regionContent)

WriteVoxels
Các khả năng: Environment
Terrain:WriteVoxels(
region:Region3, resolution:number, materials:{any}, occupancy:{any}
):()
Tham Số
region:Region3
resolution:number
materials:{any}
occupancy:{any}
Lợi Nhuận
()
Mẫu mã
Terrain:WriteVoxels()
local terrain = workspace.Terrain
local resolution = 4
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 28, 20)):ExpandToGrid(resolution)
local materials = {
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
}
local occupancies = {
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
}
terrain:WriteVoxels(region, resolution, materials, occupancies)

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.