Lớp công cụ
WorldRoot
*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
ArePartsTouchingOthers(partList: Instances,overlapIgnored: number):boolean |
Blockcast(cframe: CFrame,size: Vector3,direction: Vector3,params: RaycastParams):RaycastResult? |
BulkMoveTo(partList: Instances,cframeList: {any},eventMode: Enum.BulkMoveMode):() |
FindPartOnRayWithIgnoreList(ray: Ray,ignoreDescendantsTable: Instances,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple |
FindPartOnRayWithWhitelist(ray: Ray,whitelistDescendantsTable: Instances,ignoreWater: boolean):Tuple |
FindPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart} |
findPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart} |
FindPartsInRegion3WithIgnoreList(region: Region3,ignoreDescendantsTable: Instances,maxParts: number):{BasePart} |
FindPartsInRegion3WithWhiteList(region: Region3,whitelistDescendantsTable: Instances,maxParts: number):{BasePart} |
GetPartBoundsInBox(cframe: CFrame,size: Vector3,overlapParams: OverlapParams):{BasePart} |
GetPartBoundsInRadius(position: Vector3,radius: number,overlapParams: OverlapParams):{BasePart} |
GetPartsInPart(part: BasePart,overlapParams: OverlapParams):{BasePart} |
IsRegion3Empty(region: Region3,ignoreDescendentsInstance: Instance):boolean |
IsRegion3EmptyWithIgnoreList(region: Region3,ignoreDescendentsTable: Instances):boolean |
Raycast(origin: Vector3,direction: Vector3,raycastParams: RaycastParams):RaycastResult? |
Shapecast(part: BasePart,direction: Vector3,params: RaycastParams):RaycastResult? |
Spherecast(position: Vector3,radius: number,direction: Vector3,params: RaycastParams):RaycastResult? |
StepPhysics(dt: number,parts: Instances):() |
Thành viên kế thừa
26 thành viên kế thừa từ Model
4 thành viên kế thừa từ PVInstance
57 thành viên kế thừa từ Instance
6 thành viên kế thừa từ Object
Được kế thừa bởi
Tài Liệu Tham Khảo API
Phương Pháp
ArePartsTouchingOthers
Tham Số
partList:Instances |
| Giá Trị Mặc Định: 0.000199999995 |
Lợi Nhuận
Mẫu mã
Kiểm tra các phần chạm nhau
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)) -- Đúng
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- Đúng
print(workspace:ArePartsTouchingOthers(partList, 1)) -- SaiBlockcast
WorldRoot:Blockcast(
Tham Số
| Giá Trị Mặc Định: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
Mẫu mã
Casting Khối
local Workspace = game:GetService("Workspace")
local function castBlock()
-- Vị trí và độ xoay ban đầu của hình dạng khối nhắm
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- Kích thước của hình dạng khối nhắm
local size = Vector3.new(6, 3, 9)
-- Hướng mà khối được nhắm tới
local direction = -Vector3.yAxis
-- Khoảng cách tối đa của sự nhắm
local distance = 50
-- Nhắm khối và tạo một hình ảnh hóa nó
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- In ra tất cả các thuộc tính của RaycastResult nếu nó tồn tại
print(`Khối đã va chạm với: {raycastResult.Instance:GetFullName()}`)
print(`Vị trí giao nhau: {raycastResult.Position}`)
print(`Khoảng cách giữa vị trí ban đầu của khối và kết quả: {raycastResult.Distance}`)
print(`Véc tơ pháp tuyến của mặt đã va chạm: {raycastResult.Normal}`)
print(`Vật liệu bị trúng: {raycastResult.Material.Name}`)
else
print("Không có gì bị trúng")
end
end
-- Liên tục nhắm một khối mỗi 2 giây
while true do
castBlock()
task.wait(2)
endBulkMoveTo
Tham Số
partList:Instances |
| Giá Trị Mặc Định: "FireAllEvents" |
Lợi Nhuận
()
FindPartOnRay
findPartOnRay
FindPartOnRayWithIgnoreList
FindPartOnRayWithWhitelist
FindPartsInRegion3
findPartsInRegion3
FindPartsInRegion3WithIgnoreList
FindPartsInRegion3WithWhiteList
GetPartBoundsInBox
Tham Số
| Giá Trị Mặc Định: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
{BasePart}
GetPartBoundsInRadius
WorldRoot:GetPartBoundsInRadius(
Tham Số
| Giá Trị Mặc Định: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
{BasePart}
GetPartsInPart
Tham Số
| Giá Trị Mặc Định: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
{BasePart}
IKMoveTo
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
Tham Số
| Giá Trị Mặc Định: 0.5 |
| Giá Trị Mặc Định: 0.5 |
| Giá Trị Mặc Định: "OtherMechanismsAnchored" |
Lợi Nhuận
()
IsRegion3Empty
IsRegion3EmptyWithIgnoreList
Raycast
Tham Số
| Giá Trị Mặc Định: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
Mẫu mã
Chiếu sáng
local Workspace = game:GetService("Workspace")
local function castRay()
-- Điểm gốc của tia
local originPosition = Vector3.new(0, 50, 0)
-- Hướng mà tia được phát
local direction = -Vector3.yAxis
-- Khoảng cách tối đa của tia
local distance = 50
-- Phát tia và tạo một hình ảnh mô phỏng cho nó
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- In ra tất cả các thuộc tính của RaycastResult nếu nó tồn tại
print(`Tia cắt với: {raycastResult.Instance:GetFullName()}`)
print(`Vị trí giao nhau: {raycastResult.Position}`)
print(`Khoảng cách giữa gốc tia và kết quả: {raycastResult.Distance}`)
print(`Vecto pháp tuyến của mặt đã giao nhau: {raycastResult.Normal}`)
print(`Vật liệu bị va chạm: {raycastResult.Material.Name}`)
else
print("Không có gì bị va chạm")
end
end
-- Liên tục phát một tia mỗi 2 giây
while true do
castRay()
task.wait(2)
endShapecast
Tham Số
| Giá Trị Mặc Định: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
Spherecast
WorldRoot:Spherecast(
Tham Số
| Giá Trị Mặc Định: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Lợi Nhuận
Mẫu mã
Chiếu hình cầu
local Workspace = game:GetService("Workspace")
local function castSphere()
-- Vị trí ban đầu của hình cầu được chiếu
local originPosition = Vector3.new(0, 50, 0)
-- Bán kính của hình cầu được chiếu tính bằng studs
local radius = 10
-- Hướng mà hình cầu được chiếu vào
local direction = -Vector3.yAxis
-- Khoảng cách tối đa của việc chiếu
local distance = 50
-- Chiếu hình cầu và tạo một hình ảnh trực quan về nó
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- In ra tất cả các thuộc tính của RaycastResult nếu nó tồn tại
print(`Hình cầu đã va chạm với: {raycastResult.Instance:GetFullName()}`)
print(`Vị trí va chạm: {raycastResult.Position}`)
print(`Khoảng cách giữa vị trí ban đầu của hình cầu và kết quả: {raycastResult.Distance}`)
print(`Vector pháp tuyến của mặt đã va chạm: {raycastResult.Normal}`)
print(`Chất liệu đã va chạm: {raycastResult.Material.Name}`)
else
print("Không có gì bị va chạm")
end
end
-- Liên tục chiếu một hình cầu mỗi 2 giây
while true do
castSphere()
task.wait(2)
endStepPhysics
Tham Số
parts:Instances Giá Trị Mặc Định: "{}" |
Lợi Nhuận
()
Mẫu mã
Bước Vật Lý
local RunService = game:GetService("RunService")
-- Mảng có thể có các phần để mô phỏng; nếu không, tất cả các phần sẽ được mô phỏng
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
-- Mô phỏng các phần trong không gian làm việc trong 5 giây, bước các phần một lần mỗi khung hình
simulateParts(5.0)