Pelajari
Kelas Engine
WorldRoot
Tidak Dapat Dibuat

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.


Rangkuman
Metode
ArePartsTouchingOthers(partList: Instances,overlapIgnored: number):boolean
Blockcast(cframe: CFrame,size: Vector3,direction: Vector3,params: RaycastParams):RaycastResult?
BulkMoveTo(partList: Instances,cframeList: {any},eventMode: Enum.BulkMoveMode):()
FindPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Tidak digunakan lagi
findPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Tidak digunakan lagi
FindPartOnRayWithIgnoreList(ray: Ray,ignoreDescendantsTable: Instances,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Tidak digunakan lagi
FindPartOnRayWithWhitelist(ray: Ray,whitelistDescendantsTable: Instances,ignoreWater: boolean):Tuple
Tidak digunakan lagi
FindPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Tidak digunakan lagi
findPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Tidak digunakan lagi
FindPartsInRegion3WithIgnoreList(region: Region3,ignoreDescendantsTable: Instances,maxParts: number):{BasePart}
Tidak digunakan lagi
FindPartsInRegion3WithWhiteList(region: Region3,whitelistDescendantsTable: Instances,maxParts: number):{BasePart}
Tidak digunakan lagi
GetPartBoundsInBox(cframe: CFrame,size: Vector3,overlapParams: OverlapParams):{BasePart}
GetPartBoundsInRadius(position: Vector3,radius: number,overlapParams: OverlapParams):{BasePart}
IKMoveTo(part: BasePart,target: CFrame,translateStiffness: number,rotateStiffness: number,collisionsMode: Enum.IKCollisionsMode):()
IsRegion3Empty(region: Region3,ignoreDescendentsInstance: Instance):boolean
Tidak digunakan lagi
IsRegion3EmptyWithIgnoreList(region: Region3,ignoreDescendentsTable: Instances):boolean
Tidak digunakan lagi
Raycast(origin: Vector3,direction: Vector3,raycastParams: RaycastParams):RaycastResult?
Spherecast(position: Vector3,radius: number,direction: Vector3,params: RaycastParams):RaycastResult?
StepPhysics(dt: number,parts: Instances):()
Anggota yang Diwariskan
Diwariskan oleh

Referensi API
Metode
ArePartsTouchingOthers
Akses Simulasi
WorldRoot:ArePartsTouchingOthers(
partList:Instances, overlapIgnored:number
Parameter
partList:Instances
overlapIgnored:number
Nilai Default: 0.000199999995
Memberikan nilai
Contoh Kode
Memeriksa Bagian yang Terhubung
local part1 = Instance.new("Part")
part1.Name = "Part1"
part1.Anchored = true
part1.Transparency = 0.5
part1.Color = Color3.fromRGB(185, 100, 38)
part1.Size = Vector3.new(2, 2, 2)
part1.Position = Vector3.new(0, 4, 0)
part1.Parent = workspace
local part2 = Instance.new("Part")
part2.Name = "Part2"
part2.Anchored = true
part2.Transparency = 0.5
part2.Color = Color3.fromRGB(200, 10, 0)
part2.Size = Vector3.new(2, 2, 2)
part2.Position = Vector3.new(0, 5, 0)
part2.Parent = workspace
local partList = { part1 }
print(workspace:ArePartsTouchingOthers(partList, 0)) -- Benar
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- Benar
print(workspace:ArePartsTouchingOthers(partList, 1)) -- Salah

Blockcast
Tulis Paralel
Akses Simulasi
WorldRoot:Blockcast(
cframe:CFrame, size:Vector3, direction:Vector3, params:RaycastParams
Parameter
cframe:CFrame
size:Vector3
direction:Vector3
Nilai Default: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai
Contoh Kode
Blokcasting
local Workspace = game:GetService("Workspace")
local function castBlock()
-- Posisi awal dan rotasi dari bentuk blok yang di-cast
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- Ukuran dari bentuk blok yang di-cast
local size = Vector3.new(6, 3, 9)
-- Arah blok di-cast
local direction = -Vector3.yAxis
-- Jarak maksimum dari yang di-cast
local distance = 50
-- Meng-cast blok dan membuat visualisasi dari itu
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- Mencetak semua properti dari RaycastResult jika itu ada
print(`Blok berpotongan dengan: {raycastResult.Instance:GetFullName()}`)
print(`Posisi perpotongan: {raycastResult.Position}`)
print(`Jarak antara posisi awal blok dan hasil: {raycastResult.Distance}`)
print(`Vektor normal dari sisi yang terkena: {raycastResult.Normal}`)
print(`Material yang terkena: {raycastResult.Material.Name}`)
else
print("Tidak ada yang terkena")
end
end
-- Meng-cast blok setiap 2 detik
while true do
castBlock()
task.wait(2)
end

BulkMoveTo
Akses Simulasi
WorldRoot:BulkMoveTo(
partList:Instances, cframeList:{any}, eventMode:Enum.BulkMoveMode
):()
Parameter
partList:Instances
cframeList:{any}
Nilai Default: "FireAllEvents"
Memberikan nilai
()

FindPartOnRay
Tidak digunakan lagi

findPartOnRay
Tidak digunakan lagi

FindPartOnRayWithIgnoreList
Tidak digunakan lagi

FindPartOnRayWithWhitelist
Tidak digunakan lagi

FindPartsInRegion3
Tidak digunakan lagi

findPartsInRegion3
Tidak digunakan lagi

FindPartsInRegion3WithIgnoreList
Tidak digunakan lagi

FindPartsInRegion3WithWhiteList
Tidak digunakan lagi

GetPartBoundsInBox
Tulis Paralel
Akses Simulasi
WorldRoot:GetPartBoundsInBox(
cframe:CFrame, size:Vector3, overlapParams:OverlapParams
Parameter
cframe:CFrame
size:Vector3
overlapParams:OverlapParams
Nilai Default: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai

GetPartBoundsInRadius
Tulis Paralel
Akses Simulasi
WorldRoot:GetPartBoundsInRadius(
position:Vector3, radius:number, overlapParams:OverlapParams
Parameter
position:Vector3
radius:number
overlapParams:OverlapParams
Nilai Default: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai

GetPartsInPart
Tulis Paralel
Akses Simulasi
WorldRoot:GetPartsInPart(
part:BasePart, overlapParams:OverlapParams
Parameter
overlapParams:OverlapParams
Nilai Default: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai

IKMoveTo
Keamanan Plugin
Akses Simulasi
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
Parameter
target:CFrame
translateStiffness:number
Nilai Default: 0.5
rotateStiffness:number
Nilai Default: 0.5
collisionsMode:Enum.IKCollisionsMode
Nilai Default: "OtherMechanismsAnchored"
Memberikan nilai
()

IsRegion3Empty
Tidak digunakan lagi

IsRegion3EmptyWithIgnoreList
Tidak digunakan lagi

Raycast
Tulis Paralel
Akses Simulasi
WorldRoot:Raycast(
origin:Vector3, direction:Vector3, raycastParams:RaycastParams
Parameter
origin:Vector3
direction:Vector3
raycastParams:RaycastParams
Nilai Default: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai
Contoh Kode
Raycasting
local Workspace = game:GetService("Workspace")
local function castRay()
-- Titik asal dari sinar
local originPosition = Vector3.new(0, 50, 0)
-- Arah di mana sinar dilempar
local direction = -Vector3.yAxis
-- Jarak maksimum dari sinar
local distance = 50
-- Lakukan sinar dan buat visualisasi darinya
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- Cetak semua properti dari RaycastResult jika ada
print(`Ray intersected with: {raycastResult.Instance:GetFullName()}`)
print(`Intersection position: {raycastResult.Position}`)
print(`Distance between ray origin and result: {raycastResult.Distance}`)
print(`The normal vector of the intersected face: {raycastResult.Normal}`)
print(`Material hit: {raycastResult.Material.Name}`)
else
print("Tidak ada yang terkena")
end
end
-- Terus menerus melakukan sinar setiap 2 detik
while true do
castRay()
task.wait(2)
end

Shapecast
Akses Simulasi
WorldRoot:Shapecast(
part:BasePart, direction:Vector3, params:RaycastParams
Parameter
direction:Vector3
Nilai Default: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai

Spherecast
Tulis Paralel
Akses Simulasi
WorldRoot:Spherecast(
position:Vector3, radius:number, direction:Vector3, params:RaycastParams
Parameter
position:Vector3
radius:number
direction:Vector3
Nilai Default: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Memberikan nilai
Contoh Kode
Pencasting
local Workspace = game:GetService("Workspace")
local function castSphere()
-- Posisi awal dari bentuk bola yang digambarkan
local originPosition = Vector3.new(0, 50, 0)
-- Jari-jari dari bentuk bola yang digambarkan dalam studs
local radius = 10
-- Arah bola digambarkan
local direction = -Vector3.yAxis
-- Jarak maksimum dari gambarannya
local distance = 50
-- Gambarkan bola dan buat visualisasinya
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- Cetak semua properti dari RaycastResult jika ada
print(`Bola berpotongan dengan: {raycastResult.Instance:GetFullName()}`)
print(`Posisi perpotongan: {raycastResult.Position}`)
print(`Jarak antara posisi awal bola dan hasil: {raycastResult.Distance}`)
print(`Vektor normal dari permukaan yang terpotong: {raycastResult.Normal}`)
print(`Material yang terkena: {raycastResult.Material.Name}`)
else
print("Tidak ada yang terkena")
end
end
-- Terus menerus menggambarkan bola setiap 2 detik
while true do
castSphere()
task.wait(2)
end

StepPhysics
Keamanan Plugin
WorldRoot:StepPhysics(
dt:number, parts:Instances
):()
Parameter
parts:Instances
Nilai Default: "{}"
Memberikan nilai
()
Contoh Kode
LangkahFisika
local RunService = game:GetService("RunService")
-- Array opsional dari bagian untuk disimulasikan; jika tidak, semua bagian akan disimulasikan
local partsToSimulate = {
workspace.Part,
}
local function simulateParts(duration)
local time = 0.0
local stepJob
stepJob = RunService.RenderStepped:Connect(function(dt)
if time + dt > duration then
dt = duration - time
end
workspace:StepPhysics(dt, partsToSimulate)
time = time + dt
if time >= duration then
stepJob:Disconnect()
end
end)
end
-- Simulasikan bagian workspace selama 5 detik, melangkahi bagian sekali per frame
simulateParts(5.0)

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.