Instance

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Không Thể Duyệt

Instância là lớp cơ sở cho tất cả các lớp trong trình tự lớp Roblox có thể là một phần của cây dữ liệu. Không thể tạo trực tiếp các thể đối tượng Instância.

Instância tem một chức năng đặc biệt tên là Instance.new() được sử dụng để tạo nên các đối tượng thông qua mã. Đây chức năng nhận tên lớp như một tham số và trả lại đối tượng đã tạo. Các lớp và dịch vụ tương tượng không thể được tạo với chức

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Xác định nếu một Instance và con cháu của nó có thể được clon bằng cách sử dụng Instance:Clone() , và có thể được lưu/phát sóng.

  • Capabilities:SecurityCapabilities
    Bảo Mật Kịch Bản Roblox
    Đọc Song Song

    Bộ sưu tập các kĩ năng cho phép bạn sử dụng cho các tập lệnh bên trong thùng này.

  • Đọc Song Song

    Một không độc nhất của Instance .

  • Không Sao Chép
    Đọc Song Song

    Xác định cha cấp của Instance .

  • Ẩn
    Bảo Mật Plugin
    Đọc Song Song
    Đã Lỗi Thời

    Một đặt tính bị lỗi đã được sử dụng để bảo vệ các đối tượng CoreGui .

  • Không Sao Chép
    Bảo Mật Kịch Bản Roblox
    Đọc Song Song

    Chuyển trình duyệt thành một Container Sandbox.

  • UniqueId:UniqueId
    Không Sao Chép
    Không Thể Viết Kịch Bản
    Bảo Mật Roblox
    Đọc Song Song

Phương Pháp

Sự Kiện

Thuộc Tính

Archivable

Đọc Song Song

Thuộc tính này xác định whether the instance should be included when the experience is published or saved, or when Clone() is called on one of the ví dụ / trường hợp's ancestors. Calling Clone() directly on an instance will return nil if that instance is 1>

Bắt chước một đối tượng trong Studio bằng cách sử dụng Duplicate hoặc Copy / Paste tùy chọn sẽ bỏ qua tính đa dụng 1> Class.Instance.Archivable|Archivable1> của nó và thiết lập 4> Class


local part = Instance.new("Part")
print(part:Clone()) --> Part
part.Archivable = false
print(part:Clone()) --> nil

Capabilities

SecurityCapabilities
Bảo Mật Kịch Bản Roblox
Đọc Song Song

Bộ sưu tập các khả năng cho phép được sử dụng cho các script ở trong ví dụ / trường hợpnày. Để các khả năng có hiệu lực, Instance.Sandboxed tính năng phải được bật.

Đặ性 này được sử dụng bởi một tính năng thử nghiệm. Xem trang Kĩ Năng Trình Bịnh để biết thêm chi tiết.

Name

Đọc Song Song

Một không độc nhất của Instance .

Đây là một danh xưng mô tả một đối tượng. Tên không phải là một danh xưng độc nhất; nhiều con của một đối tượng có thể chia sẻ cùng một danh xưng. Tên được sử dụng để giữ cấp độ hiệp hội của đối tượng, cùng với việc cho phép các con của đối tượng truy

Tên của một đối tượng thường được sử dụng để truy cập đối tượng thông qua cấp độ dữ liệu bằng cách sử dụng các phương pháp sau đây:


local baseplate = workspace.Baseplate
local baseplate = workspace["Baseplate"]
local baseplate = workspace:FindFirstChild("BasePlate")

Để làm cho một đối tượng truy cập được bằng cách sử dụng dấu chấm dấu, tên của một đối tượng phải bắt đầu bằng một dấu chấm câu hoặc chữ cái. Tên của đối tượng không thể bắt đầu bằng một dấu chấm câu hoặc chữ

Nếu hơn một đối tượng có cùng tên là con cái của một đối tượng thì bất kỳ lần nào cố gắng xếp chỉnh đối tượng bằng cùng tên đó sẽ trả về đối tượng duy nhất trong số các đối tượng tương tự được tìm thấ

Ghi chú, một tên đầy đủ bao gồm cấp độ thượng tầng của ví dụ / trường hợpcó thể được nhận bằng cách sử dụng Instance:GetFullName() .

Parent

Không Sao Chép
Đọc Song Song

Thuộc tính Cha xác định cha cấp cao nhất của Instance . The following terminology is commonly used when talking about how this property is cài đặt:

  • Một đối tượng là một con của ( phụ huynh của ) một đối tượng khác khi cha mẹ của nó được đặt vào đối tượng đó.
  • con cháu của một Class.Instance là con cháu của thiết bị đó, plus con cháu của trẻ em cũng vậy.
  • Các tiền nhân của một Instance là tất cả các thống kê đối tượng mà Instância là một con cháu.

Nó đến từ thuộc tính này mà nhiều thành viên API khác nhận tên của họ, chẳng hạn như GetChildrenFindFirstChild .

Hàm Remove tạo ra thuộc tính này để là nil. Gọi Destroy sẽ tạo ra thân của một Instance và tất cả các con cái của nó đều được đặ

Thuộc tính này cũng được sử dụng để quản lý có sự hiện diện của một đối tượng trong trò chơi hay không cần bị xóa. As long as an objects parent is in the Class

Những thống kê mới tạo bằng cách sử dụng Instance.new() sẽ không có cha mẹ, và thường sẽ không được hiển thị hoặc chức năng cho đến khi một được cài đặt. Việc tạo thành một thống kê có hai bước: tạo thống kê và sau đó đặt cha mẹ của nó.


-- Create a part and parent it to the workspace
local part = Instance.new("Part")
part.Parent = workspace
-- Instance new can also take Parent as a second parameter
Instance.new("NumberValue", workspace)

Khi một thay đổi được thực hiện đối với một số thuộc tính nhất định trong khi một ví dụ / trường hợptượng được gắn vào trong DataModel, động cơ có thể cần phải thực hiện công việc thêm để đạt được kết quả tốt hơn (

Replication đối tượng

Một đối tượng được tạo bởi máy chủ sẽ không bị sao chép cho đến khi nó được gắn với một đối tượng nào đó mà được gắn với nó. Khi tạo một đối tượng thì đặt nhiều thuộc tính khác nhau, được đề xuất để đặt cha đến cuố


local part = Instance.new("Part") -- Tránh sử dụng tham số thứ hai ở đây
part.Anchored = true
part.BrickColor = BrickColor.new("Really red")
-- Nhiều thay đổi tính chất khác có thể xảy ra ở đây...
-- Luôn đặt cha mẹ cuối cùng!
part.Parent = workspace

Tuy nhiên, nếu bạn đang làm cha các bộ phận của bạn vào một Model whose parent chưa được cài đặt, thì việc cha mỗi bộ phận vào mô hình đó là được vì mô hình đó vẫn chưa được sao chép.

RobloxLocked

Ẩn
Bảo Mật Plugin
Đọc Song Song

Đặ性 này đã được sử dụng để bảo vệ các đối tượng trong dịch vụ CoreGui khỏi bị thay đổi bởi người dùng theo cách không được ủy quyền. Nó đã bị deprecated và không làm gì được.

Sandboxed

Không Sao Chép
Bảo Mật Kịch Bản Roblox
Đọc Song Song

Chuyển instância thành một Container Sandbox. Container Sandbox là một tính năng thử nghiệm mà giới hạn những hành động mà các script trong mộtContainer cụ thể có thể thực hiện.

Xem trang Kĩ Thuật Số Script để biết thêm chi tiết.

UniqueId

UniqueId
Không Sao Chép
Không Thể Viết Kịch Bản
Bảo Mật Roblox
Đọc Song Song

Phương Pháp

AddTag

void

Phương thức này áp dụng một nhãn cho instância, với không có hiệu ứng nếu nhãn đã được áp dụng. Thành công thêm một nhãn sẽ kích hoạt một tín hiệu được tạo bởi CollectionService:GetInstanceAddedSignal() với nhãn đã được cung cấp.

Lưu ý rằng khi gắn nhãn cho một ví dụ / trường hợp, thường có một số tài nguyên được sử dụng để cung cấp chức năng cho nhãn, chẳng hạn như kết

Tham Số

tag: string

Lợi Nhuận

void

ClearAllChildren

void

Hành này tiêu diệt tất cả con cái của một ví dụ / trường hợp.

Như Instance:Destroy() cũng gọi chính mình trên con cháu của một đối tượng nó được sử dụng trên, chức năng này sẽ tiêu diệt tất cả các con cháu.

Alternatives to ClearAllChildren

Nếu nhà phát triển không muốn phá hủy tất cả các con cháu, họ nên sử dụng Instance:GetChildren() hoặc Instance:GetDescendants() để lặp qua một đối tượng và chọn những gì để tiêu diệt. Ví dụ, mẫu mã code sau đây sẽ tiêu diệt tất cả các


for _, instance in object:GetDescendants() do
if instance:IsA("BasePart") then
instance:Destroy()
end
end

Lợi Nhuận

void

Mẫu mã

Instance:ClearAllChildren

local part = Instance.new("Part")
-- add some sparkles
for _ = 1, 3 do
local sparkles = Instance.new("Sparkles")
sparkles.Parent = part
end
print("Part has", #part:GetChildren(), "children")
--> Part has 3 children
part:ClearAllChildren()
print("Part has", #part:GetChildren(), "children")
--> Part has 0 children

Clone tạo một bản sao của một instância và tất cả các con cái của nó, bỏ qua tất cả những instância không phả

Nếu một thuộc tính tham khảo như ObjectValue.Value được đặt trong một instanti nhân ví dụ / trường hợp, giá trị của thuộc tính bản sao phụ thuộc vào giá trị của nguồn gốc:

  • Nếu một thuộc tính tham chiếu đến một instância đã được cũng cloned, bản sao sẽ đề cập đến bản sao.
  • Nếu một thuộc tính tham chiếu đến một đối tượng đã được không sao chép, giá trị tương tự được duy trì trong bản sao.

Lợi Nhuận

Mẫu mã

Cloning an Instance

local Workspace = game:GetService("Workspace")
-- Get a reference to an existing object
local model = script.Parent.Model
-- Create a clone of the model
local clone = model:Clone()
-- Move the clone so it's not overlapping the original model
clone:PivotTo(model.PrimaryPart.CFrame - (Vector3.xAxis * 10))
-- Add the clone to the Workspace
clone.Parent = Workspace

Destroy

void

Đặt độ Instance.Parent để nil, khóa độ Instance.Parent độ, kết nối tất cả các kết nối và gọi Destroy on all children. Đây là cách đúng đắn để xử lý những thứ không c

Mẹo: Sau khi gọi Destroy trên một đối tượng, đặt bất kỳ biến nào chỉ tham chiếu đối tượng (hoặc con cháu của nó) để nil. Điều này ngăn chặn mã của bạn khỏi truy cập bất kỳ điều gì để làm với đối tượng.


local part = Instance.new("Part")
part.Name = "Hello, world"
part:Destroy()
-- Đừng làm điều này:
print(part.Name) --> "Xin chào, thế giới"
-- Làm điều này để ngăn chặn dòng trên không hoạt động:
part = nil

Một khi một Class.Instance đã bị phá hủy bởi phương pháp này, nó không thể được sử dụng lại vì thuộc tính Instance đã bị khóa. Để tạm thời loại bỏ một đối tượng, hãy đặt Instance.Parent để nil thay vào đó. Ví d


object.Parent = nil
wait(2)
object.Parent = workspace

Để tiêu diệt một đối tượng sau một thời gian cố định, hãy sử dụng Debris:AddItem() .


Lợi Nhuận

void

Mẫu mã

Instance:Destroy()

local part = script.Parent.Part
part:Destroy()

FindFirstAncestor

Ghi Song Song

Trả lại tiền nhân đầu tiên của Instance Whose Instance.Name is equal to the given name.

Hàm này hoạt động lên trên, có nghĩa là nó bắt đầu tại ngay cảnh trực tiếp của ví dụ / trường hợp's và hoạt động lên <a href="/reference/engine/datamodel.md"> Class.DataModel</a>. Nếu không tìm thấy tổ tiên tương ứng, nó sẽ trả về nil.

Các câu code dưới đây sẽ tìm thấy người tiền nhi của đối tượng tên là "Car".


local car = object:FindFirstAncestor("Car")

Đối với các biến thể của chức năng này tìm nguồn gốc của một lớp cụ thể, xin vui lòng tham khảo Instance:FindFirstAncestorOfClass()Instance:FindFirstAncestorWhichIsA() .

Tham Số

name: string

Các Instance.Name để tìm kiếm.


Lợi Nhuận

Các Instance đã được tìm thấy.

FindFirstAncestorOfClass

Ghi Song Song

Trả lại tiền nhân đầu tiên của Instance whose Object.ClassName is equal to the given namespace.

Hàm này hoạt động lên trên, có nghĩa là nó bắt đầu tại ngay cảnh trực tiếp của ví dụ / trường hợp's và hoạt động lên <a href="/reference/engine/datamodel.md"> Class.DataModel</a>. Nếu không tìm thấy tổ tiên tương ứng, nó sẽ trả về nil.

Một sử dụng phổ biến của hàm này là tìm kiếm Model một BasePart thuộc về nó. Ví dụ:


local model = part:FindFirstAncestorOfClass("Model")

Hàm này là một biến thể của Instance:FindFirstAncestor() which检查 the Object.ClassName property rather than Instance.Name . 1> Class.Instance:FindFirstAncestorWhichIsA()1> also exists, using the 4> Class.Object

Tham Số

className: string

Class.Object.className để tìm kiếm.


Lợi Nhuận

Các Instance đã được tìm thấy.

FindFirstAncestorWhichIsA

Ghi Song Song

Trả lại tiền nhân đầu tiên của Instance cho người đó Object:IsA() trả lại cho các tên cấp cao đã được định.

Hàm này hoạt động lên trên, có nghĩa là nó bắt đầu tại ngay cảnh trực tiếp của ví dụ / trường hợp's và hoạt động lên <a href="/reference/engine/datamodel.md"> Class.DataModel</a>. Nếu không tìm thấy tổ tiên tương ứng, nó sẽ trả về nil.

Ngoài ra, Instance:FindFirstAncestorOfClass() , hàm này sử dụng Object:IsA() , tôn trọng kế thừa lớp. Ví dụ:


print(part:IsA("Part")) --> true
print(part:IsA("BasePart")) --> true
print(part:IsA("Instance")) --> true

Do đó, mẫu mã code sau đây sẽ trả về tiền nhân đầu tiên của BasePart, bất kể nó là một WedgePart , MeshPart hoặc 1> Class.Part1> .


local part = object:FindFirstAncestorWhichIsA("BasePart")

Xem thêm, Instance:FindFirstAncestor() .

Tham Số

className: string

Class.Object.className để tìm kiếm.


Lợi Nhuận

Các Instance đã được tìm thấy.

FindFirstChild

Ghi Song Song

Làm trở lại con đầu tiên của Instance với tên đã được đặt,

hoặc nil nếu không có con cháu như vậy. Nếu động từ tùy chọn recursive được đúng, hàm này tìm tất cả các con cháu của Instance .

Kiểm tra tồn tại của một đối tượng

FindFirstChild là cần thiết nếu bạn cần xác minh một đối tượng tồn tại trước khi tiếp tục. Cố gắng xác minh một con trẻ bằng cách sử dụng trượt dấu nhỏ là một lỗi nếu con trẻ không tồn tại.


-- Các lỗi dòng dưới đây xảy ra nếu Part không tồn tại trong Workspace:
workspace.Part.Transparency = 0.5

Sử dụng FindFirstChild để kiểm tra trước tiên cho Phần, sau đó sử dụng các if-句 để thi hành mã cần thiết.


local part = workspace:FindFirstChild("Part")
if part then
part.Transparency = 0.5
end

Tìm một đứa trẻ có tên trùng với một tính năng

Đôi khi Name của một đối tượng là cùng với điều kiện của một đối tượng Parent . Khi sử dụng dấu chấm dấu, các đối tượng có ưu tiên hơn trên trẻ em nếu chúng chia sẻ một cái tên.

Trong ví dụ sau đây, một Folder tên là "Màu" được thêm vào một Part , cũng có thuộc tính Part.Color. 1> Class.Part.Color1> đề cập đến Folder.


local part = Instance.new("Part")
local folder = Instance.new("Folder")
folder.Name = "Color"
folder.Parent = part
local c = part.Color --> Một Color3
local c2 = part:FindFirstChild("Color") --> The Folder

Một lợi ích của việc sử dụng FindFirstChild() như thế này là việc giới thiệu các thuộc tính mới không gây ra nguy cơ cho mã của bạn.

Ghi chú hiệu suất

FindFirstChild() dài hơn gấp đến 20% so với dấu chấu câu và g

Tham Số

name: string

Các Instance.Name để tìm kiếm.

recursive: bool

Dù nên thực hiện tìm kiếm hay không.

Giá Trị Mặc Định: false

Lợi Nhuận

Các Instance đã được tìm thấy.

Mẫu mã

Instance:FindFirstChild

local found = workspace:FindFirstChild("Brick")
if found then
found.Name = "Foo"
end

FindFirstChildOfClass

Ghi Song Song

Trả lại con đầu tiên của Instance whose ClassName is equal to the given namespace.

Nếu không tìm thấy con cháu tương ứng, chức năng này trả về nil.

Class.Instance:FindFirstChildWhichIsA() chức năng này chỉ trả về các thống kê đối tượng mà class khớp với tên đã được định, bỏ qua hướng thừa hưởng lớp.

Những nhà phát triển tìm một đứa trẻ theo tên nên sử dụng Instance:FindFirstChild() thay vào đó.

Tham Số

className: string

Class.Object.className để tìm kiếm.


Lợi Nhuận

Các Instance đã được tìm thấy.

Mẫu mã

Instance:FindFirstChildOfClass

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid
while not humanoid do
humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then
character.ChildAdded:Wait()
end
end

FindFirstChildWhichIsA

Ghi Song Song

Trả lại con đầu tiên của Instance cho người đó Object:IsA() trả lại true cho kiểu tên đã được cho.

Nếu không tìm thấy con cháu tương ứng nào, chức năng này trả về nil. Nếu độ lặp tùy chọn là đúng, chức năng này tìm tất cả các con cháu của Instance .

Ngoài ra, Instance:FindFirstChildOfClass() , hàm này sử dụng Object:IsA() , tôn trọng kế thừa lớp. Ví dụ:


print(part:IsA("Part")) --> đúng
print(part:IsA("BasePart")) --> đúng
print(part:IsA("Instance")) --> true

Do đó, mẫu mã sau đây sẽ trả lại con cháu đầu tiên BasePart , bất kể nó là một WedgePart , MeshPart hoặc 1> Class.Part1> .


local part = object:FindFirstChildWhichIsA("BasePart")

Những nhà phát triển tìm một đứa trẻ theo tên, nên sử dụng Instance:FindFirstChild() thay vào đó.

Tham Số

className: string

Class.Object.className để tìm kiếm.

recursive: bool

Dù nên thực hiện tìm kiếm hay không.

Giá Trị Mặc Định: false

Lợi Nhuận

Các Instance đã được tìm thấy.

FindFirstDescendant

Ghi Song Song

Trả lại con cháu đầu tiên được tìm thấy với Instance.Name đã được cung cấp.

Phương pháp này đã bị vô hiệu hóa và không thể được sử dụng. Để tìm con cháu đầu tiên của một ví dụ / trường hợp, hãy xem xét sử dụng <a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-first-dates">recursive\參數 trên <a href="https://developer.microsoft.com/vietnam/microsoft-edge/microsoft-edge-first-dates">Class.Instance:FindFirstChild()\ thay vào đ

Tham Số

name: string

Các Instance.Name để tìm kiếm.


Lợi Nhuận

Các Instance đã được tìm thấy.

GetActor

Ghi Song Song

Nếu Instance là một Actor , thì Actor tự nó được trả lại. Nếu không, khả năng gần nhất của nó 1> Class.Actor1> được trả lại. Nếu khô


Lợi Nhuận

Các Actor đã được tìm thấy.

GetAttribute

Variant
Ghi Song Song

Các biểu tượng này được tạo bởi các giá trị đã được gán cho tên đặc tính đã được gán. Nếu không có biểu tượng nào được gán, nil được trả lại.

Ví dụ, mảnh mã sau đây thiết lập và sau đó nhận giá trị của Position Xuất ban đầu đặc tính của instan:


local part = workspace.Part
part:SetAttribute("InitialPosition", part.Position)
local initialPosition = instance:GetAttribute("InitialPosition")
print(initialPosition)

Xem thêm

  • Instance:SetAttribute() qui định thuộc tính với tên được cung cấp cho giá trị được cung cấp.
  • Instance:GetAttributes() which returns a dictionary of key-value pairs for each of the ví dụ / trường hợp's attributes.

Tham Số

attribute: string

Tên của thuộc tính đang được lấy.


Lợi Nhuận

Variant

Giá trị đã được gán cho tên đặc tính đã được gán. Nếu không có tên đặc tính nào được gán, nil được trả lại.

GetAttributeChangedSignal

Hàm này trả về một sự kiện xảy ra chính xác như sự kiện Changed , ngoại trừ việc nó chỉ bắt đầu khi đặc tính được thay đổi; thực tế nó giống như GetPropertyChangedSignal() nhưng cho các đặc tính.

Nói chung, tốt nhất là sử dụng phương pháp này thay vì một kết nối đến Changed với một chức năng kiểm tra tên tính năng. Các gọi điện tiếp theo đến phương pháp này trên cùng một đối tượng với cùng một tên tính năng trả lại cùng một sự kiệ

Các ví dụ mã sau đây trả lại một tín hiệu khiến chức năng attributeChanged() hoạt động khi điều kiện Position xưởng ban đầu của bộ phận thay đổi:


local part = workspace.Part
part:SetAttribute("InitialPosition", part.Position)
local function attributeChanged()
print("Attribute changed")
end
part:GetAttributeChangedSignal("InitialPosition"):Connect(attributeChanged)

Xem thêm Instance.AttributeChanged which fires whenever any attribute is changed on the ví dụ / trường hợp.

Tham Số

attribute: string

Tên của thuộc tính được xác định mà tín hiệu thay đổi đang được trả lại.


Lợi Nhuận

Một sự kiện xảy ra khi thuộc tính đã được thay đổi.

GetAttributes

Ghi Song Song

Các biểu tượng này được tạo bởi các cặp giá trị chìa khóa cho mỗi thuộc tính nơi mà chìa khóa là tên của tính tối và giá trị là một giá trị không phải là nil .

Ví dụ, mảnh code sau đây thuộc tính và giá trị của một ví dụ / trường hợp:


local part = workspace.Part
part:SetAttribute("InitialPosition", part.Position)
part:SetAttribute("CanUse", true)
for name, value in part:GetAttributes() do
print(name .. " = " .. value)
end

Xem thêm Instance:GetAttribute() which returns the value that has been assigned to the given attribute name.


Lợi Nhuận

Một từ điển dòng → cặp biến thể cho mỗi thuộc tính nơi chuỗi là tên của thuộc tính và biến thể là một giá trị không phải là nil.

GetChildren

Instances
Ghi Song Song

Đảm bảo một table (một bảng được lưu trữ tốt) chứa tất cả con cháu của instância, hoặc mọi Instance có cha là Parent của nó bằng cách sử dụng bất kỳ for-ルーp nào. Table có thể được lặp lại một lần nào đó bằng cách sử dụ


-- Ví dụ for-oop number
local children = workspace:GetChildren()
for i = 1, #children do
local child = children[i]
print(child.Name .. " is child number " .. i)
end

-- Ví dụ vòng lặp chung
local children = workspace:GetChildren()
for i, child in children do
print(child.Name .. " is child number " .. i)
end

Trẻ em được sắp xếp theo thứ tự mà đặt định Parent tính năng của họ vào đối tượng.

Xem thêm chức năng GetDescendants .


Lợi Nhuận

Instances

Một mat阵 chứa con của ví dụ / trường hợp.

Mẫu mã

Instance:GetChildren

local children = workspace:GetChildren()
for i = 1, #children do
print(i, children[i].Name)
end

GetDebugId

Không Thể Duyệt
Bảo Mật Plugin

Trả lại một chuỗi dữ liệu đã mã hóa của ID debug được sử dụng bên trong bởi Roblox.

Ghi chú:

  • Mục này đã được bảo vệ. Cố gắng sử dụng nó trong một Script hoặc LocalScript sẽ gây ra một lỗi
  • Một ID debug là một ID được sử dụng trong các quá trình debug. Nó cho phép một người debug đọc mỗi hướng dẫn trước khi một ứng dụng xử lý nó. Tất cả các đối tượng trong Roblox đều tương tự như các hướng dẫn (hoặc "mã") để được debug nếu cần thiết
  • Điều này có thể hữu ích cho các plugin cần phải phân biệt các đối tượng tương tự nhau (như các đối tượng chia sẻ cùng một cái tên)

Tham Số

scopeLength: number

Độ dài của khoảng cách.

Giá Trị Mặc Định: 4

Lợi Nhuận

chuỗiID Debug.

Mẫu mã

Instance:GetDebugId

print(workspace:GetDebugId()) --> 39FA_12
print(workspace:GetDebugId(10)) --> 39FA2FEF4D_12
print(workspace:GetDebugId(math.huge)) --> 12

GetDescendants

Ghi Song Song

Phương thức này trả lại một mat阵 chứa tất cả các con cháu của đối tượng đó. Giống như Instance:GetChildren() , nó chỉ trả lại những con cháu ngay lập tức của một đối tượng, nhưng nó tìm thấy mọi con cháu của đối tượng, mọi con cháu của những con cháu đó v


Lợi Nhuận

Một mat阵 chứa con cháu của instância.

Mẫu mã

Instance:GetDescendants

local descendants = workspace:GetDescendants()
-- Loop through all of the descendants of the Workspace. If a
-- BasePart is found, the code changes that parts color to green
for _, descendant in pairs(descendants) do
if descendant:IsA("BasePart") then
descendant.BrickColor = BrickColor.Green()
end
end

GetFullName

Ghi Song Song

Trả lại một chuỗi mô tả nguồn gốc của instância. Chuỗi là một chuỗi của Name của đối tượng và các tiền nhân của nó, được phân c

Khi gọi một Instance đó không phải là con của DataModel, hàm này xem xét tất cả các tổ tiên lên đến và bao gồm cả người cha đẻ trên cùng mà không có Parent.

Hàm này hữu ích cho việc theo dõi và truyền dữ liệu. Bạn không nên cố gắng để phân tích chuỗi đã được trả lại cho bất kỳ mục đích hữu ích nào; hàm này không thoát các kỳ hiệu (hoặc bất kỳ biểu tượng nào khác) trong tên người. Trong những lời khác, mặc d


Lợi Nhuận

Tên đầy đủ của Instance .

Mẫu mã

Instance:GetFullName

-- Create a simple hierarchy
local model = Instance.new("Model")
local part = Instance.new("Part")
part.Parent = model
local fire = Instance.new("Fire")
fire.Parent = part
print(fire:GetFullName()) --> Model.Part.Fire
model.Parent = workspace
print(fire:GetFullName()) --> Workspace.Model.Part.Fire
part.Name = "Hello, world"
print(fire:GetFullName()) --> Workspace.Model.Hello, world.Fire
Instance:GetFullName Lua Implementation

local function getFullName(object)
local result = object.Name
object = object.Parent
while object and object ~= game do
-- Prepend parent name
result = object.Name .. "." .. result
-- Go up the hierarchy
object = object.Parent
end
return result
end
print(getFullName(workspace.Camera)) --> Workspace.Camera

GetStyled

Variant

Tham Số

name: string

Lợi Nhuận

Variant

GetTags

Ghi Song Song

Phương thức này trả về một loạt các thẻ được áp dụng cho một instâne nhất định, như các chuỗi. Bạn có thể thêm các thẻ bằng cách thêm Class.Instance:AddTag()|AddTag() hoặc bằng cách chạy Class.Instance:AddTag()|AddTag() .

Phương pháp này hữu ích khi bạn muốn làm điều gì đó với nhiều nhãn trên một instan


Lợi Nhuận

HasTag

Ghi Song Song

Phương thức này trả lại true nếu nhãn đã được thêm vào đối tượng. Bạn có thể thêm nhãn bằng cách thêm vào Studio ở cửa sổ Thông tin hữu tuyến hoặc ở thời điểm thực thi với AddTag().

Tham Số

tag: string

Lợi Nhuận

IsAncestorOf

Ghi Song Song

Trả về true nếu một Instance là tổ tiên của người con cháu được cho.

Một Instance được xem là tổ tiên của một đối tượng nếu Instance.Parent hoặc một trong những người cha của nó được cài đặt trên Instance.Parent .

Xem thêm, Instance:IsDescendantOf() .

Tham Số

descendant: Instance

Các con cháu Instance .


Lợi Nhuận

Đúng nếu Instance là một tổ tiên của dòng dựng.

Mẫu mã

Instance:IsAncestorOf()

local Workspace = game:GetService("Workspace")
local spawnLocation = Workspace.SpawnLocation
local decal = spawnLocation.Decal
-- These statements are true
print(Workspace:IsAncestorOf(spawnLocation))
print(Workspace:IsAncestorOf(decal))
print(spawnLocation:IsAncestorOf(decal))
-- These statements are false
print(spawnLocation:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(spawnLocation))

IsDescendantOf

Ghi Song Song

Trả về true nếu một Instance là con cháu của người tiền nhiễm đã được cho.

Một Instance được xem là con của một đối tượng nếu cha hoặc một trong những cha của nó được cài đặt trên đối tượng.

Lưu ý, DataModel là một dòng dựng của nil. Điều này có nghĩa là IsDescendantOf không thể được sử dụng với một biến của nil để kiểm tra xem một đối tượng đã bị xóa.

Xem thêm, Instance:IsAncestorOf() .

Tham Số

ancestor: Instance

Nguyên mẫu Instance .


Lợi Nhuận

Đúng nếu Instance là con cháu của tổ tiên đã được cho.

Mẫu mã

Instance:IsDescendantOf

local part = Instance.new("Part")
print(part:IsDescendantOf(game))
--> false
part.Parent = workspace
print(part:IsDescendantOf(game))
--> true
part.Parent = game
print(part:IsDescendantOf(game))
--> true

RemoveTag

void

Phương pháp này xóa một thẻ khỏi một ví dụ / trường hợp. Nó sẽ không thả một lỗi nếu object không có thẻ. Thành côngfully xóa một thẻ sẽ kích hoạt một tín hiệu được tạo bởi CollectionService:GetInstanceRemovedSignal() với thẻ đã được cung cấp.

Lưu ý rằng khi gắn ví dụ / trường hợpmột instan, thông thường có một số tài nguyên được sử dụng để cung cấp chức năng cho nhãn, chẳng hạn như kết nối sự kiện hoặc bảng. Để ngăn chặn lỗi bộ nhớ, tốt nhất là làm sạch những thứ này (đăng nhập, thiết

Tham Số

tag: string

Lợi Nhuận

void

SetAttribute

void

Các biểu tượng được đặt tên cho đến giá trị được cung cấp. Nếu giá trị được cung cấp là nil , thì biểu tượng sẽ được xóa, vì nil được trả về mặc định.

Ví dụ, mảnh code sau đây thiết lập đặc tính InitialPosition của instância để Vector3.new(0, 10, 0) :


local part = workspace.Part
part:SetAttribute("InitialPosition", Vector3.new(0, 10, 0))

Giới hạn

Yêu cầu và hạn chế đặt tên:

  • Tên chỉ được sử dụng các ký tự alfanumeric và dấu chấm câu.
  • Không được phép sử dụng các không gian hoặc biểu tượng độc nhất.
  • Dãy chuỗi phải dưới 100 ký tự hoặc ít hơn.
  • Tên không được phép bắt đầu với RBX trừ khi người nói chuyện là một script核 của Roblox (được dành cho Roblox).

Khi cố gắng đặt một đặc tính vào một đánh máykhông hỗ trợ, một lỗi sẽ được ném.

Xem thêm:

Tham Số

attribute: string

Tên của đặc tính được cài đặt.

value: Variant

Giá trị để đặt thuộc tính được xác định.


Lợi Nhuận

void

WaitForChild

Có Thể Sinh Lợi

Trả lại con của Class.Instance với tên đã được định. Nếu con của Class.Instance không tồn tại, nó sẽ tạo ra một luồng chủ động cho đến khi nó tồn tại. Nếu được định Instance tham số, thì phương thức này sẽ hết hạn sau số giây đư

Sử dụng chính

WaitForChild() rất quan trọng khi làm việc với mã được thiết lập bởi client trong một LocalScript

Ghi chú

  • Hàm này không được trả kết quả nếu một đứa trẻ có tên đã được đặt khi gọi.
  • Instance:FindFirstChild() là một lựa chọn hiệu quả hơn cho WaitForChild() đối với những đối tượng được cho rằng tồn tại.
  • Nếu một cuộc gọi đến phương thức này vượt quá 5 giây mà không được trả lại, và không có độ timeOut được quy định, một cảnh báo sẽ được in ra trên kết quả mà thương mục có thể tạo ra mãi mãi.

Tham Số

childName: string

Các Instance.Name để tìm kiếm.

timeOut: number

Một biến thời gian bắt buộc.


Lợi Nhuận

Các Instance đã được tìm thấy.

Mẫu mã

Instance:WaitForChild

local part = workspace:WaitForChild("Part")
print(part.Name .. " has been added to the Workspace")

Sự Kiện

AncestryChanged

Lửa khi đặt tính Instance.Parent của đối tượng hoặc một trong những tiền nhân của nó.

Sự kiện này bao gồm hai tham số, concha. con tham khảo đến 1> Class.Instance1> whose 4> Class.Instance.Parent4> đã thực sự được thay đổi. 7> cha7> tham khảo đ

Bạn có thể sử dụng sự kiện này để theo dõi việc xóa một instan trong Studio, chẳng hạn như việc xóa thủ công trong Trình phát hoặc qua một plugin. Nếu bạn cần phải phát hiện khi một instan bị xóa bằng cách sử dụng Instance:Destroy(), hãy sử dụng sự kiện

Tham Số

child: Instance

Class.Instance có điều kiện Instance.Parent đã được thay đổi.

parent: Instance

Người anh em mới của Instance.Parent của Instance whose Instance.Parent has been changed.


Mẫu mã

Instance.AncestryChanged

local Workspace = game:GetService("Workspace")
local redPart = script.Parent.RedPart
local bluePart = script.Parent.BluePart
local changingPart = script.Parent.ChangingPart
-- Change the color of changingPart based on it's Parent
local function onAncestryChanged(part: Part, parent: Instance)
if parent == redPart then
changingPart.Color = Color3.new(1, 0, 0)
elseif parent == bluePart then
changingPart.Color = Color3.new(0, 0, 1)
else
changingPart.Color = Color3.new(1, 1, 1)
end
print(`{part.Name} is now parented to {parent.Name}`)
end
changingPart.AncestryChanged:Connect(onAncestryChanged)
-- Set changingPart's Parent property to different instances over time
while true do
task.wait(2)
changingPart.Parent = redPart
task.wait(2)
changingPart.Parent = bluePart
task.wait(2)
changingPart.Parent = Workspace
end

AttributeChanged

Sự kiện này bắt đầu khi bất kỳ thuộc tính nào được thay đổi trên ví dụ / trường hợp, bao gồm khi một thuộc tính được đặt trên nil . Tên của thuộc tính đã được truyền cho chức năng kết nối.

Ví dụ, mảnh code sau đây kết nối chức năng attributeChanged() để bắn khi một trong những đặc tính của một trong những bộ phận thay đổi:


local part = workspace.Part
local function attributeChanged(attributeName)
print(attributeName, "changed")
end
part.AttributeChanged:Connect(attributeChanged)

Xem thêm Instance:GetAttributeChangedSignal() which returns an event that fires when a specific given attribute changes.

Tham Số

attribute: string

Tên của đặc tính đã được thay đổi.


ChildAdded

Lửa sau khi một đối tượng được phụ huynh cho đối tượng này Instance .

Lưu ý, khi sử dụng chức năng này trên một client để phát hiện các thống kê đối tượng đã được tạo bởi máy chủ nó là cần thiết để sử dụng Instance:WaitForChild() khi index các thống kê đối tượng con của nó. Điều này là do đối tượng và con cái củ


workspace.ChildAdded:Connect(function(child)
-- need to use WaitForChild as descendants may not have replicated yet
local head = child:WaitForChild("Head")
end)

Ghi chú, chức năng này chỉ hoạt động cho trẻ em ngay lập tức của Instance . Đối với một chức năng bắt tất cả các con cháu, hãy sử dụng Instance.DescendantAdded .

Xem thêm, Instance.ChildRemoved .

Tham Số

child: Instance

Các Instance đã được thêm vào.


Mẫu mã

Instance.ChildAdded

local function onChildAdded(instance)
print(instance.Name .. " added to the workspace")
end
workspace.ChildAdded:Connect(onChildAdded)
local part = Instance.new("Part")
part.Parent = workspace --> Part added to the Workspace

ChildRemoved

Lửa sau khi một đứa trẻ được loại bỏ khỏi Instance này.

Đã bị xóa tham khảo đến khi cha mẹ của một đối tượng được thay đổi từ này Instance này sang bất cứ thứ gì khác ngoài này Instance . Hãy lưu ý rằng sự kiện này sẽ cũng bắt lửa khi một đứa tr�

Hàm này chỉ hoạt động cho những đứa con ngay lập tức của Instance . Đối với một hàm đã bắt tất cả các con cháu, hãy sử dụng Instance.DescendantRemoving .

Xem thêm Instance.ChildAdded .

Tham Số

child: Instance

Class.Instance đã bị xóa.


Mẫu mã

Instance.ChildRemoved

local function onChildRemoved(instance)
print(instance.Name .. " removed from the workspace")
end
workspace.ChildRemoved:Connect(onChildRemoved)
local part = Instance.new("Part")
part.Parent = workspace
task.wait(2)
part:Destroy()

DescendantAdded

Sự kiện DescendantAdded sẽ bắt đầu sau khi một con cháu được thêm vào Instance .

Khi thêm các lửa con cháu cho mỗi con cháu, việc cha mẹ kết nối một đối tượng với Instance sẽ khiến sự kiện này khiến cho đối tượng này và tất cả những con cháu của nó một cách riêng lẻ.

Các nhà phát triển chỉ quan tâm đến những đứa trẻ ngay lập tức của Instance nên sử dụng Instance.ChildAdded thay vào đó.

Xem thêm Instance.DescendantRemoving .

Tham Số

descendant: Instance

Các Instance đã được thêm vào.


Mẫu mã

Instance.DescendantAdded

local function onDescendantAdded(descendant)
print(descendant)
end
workspace.DescendantAdded:Connect(onDescendantAdded)
local part = Instance.new("Part")
part.Parent = workspace

DescendantRemoving

Sự kiện này kích hoạt ngay lập tức trước khi cha mẹ Instance thay đổi như vậy một môn đệ instan sẽ không còn là một 1> mô

Vì sự kiện này bắt đầu trước khi thoát của con cháu, cha của con cháu sẽ không thay đổi vào thời điểm này khi thoát của cha. Nếu con cháu cũng là một trẻ con trực tiếp của cha , sự kiện này sẽ bắt đầu trước Class.Instance.

Nếu một con cháu có con, sự kiện này sẽ bắt đầu với con cháu đầu tiên, được theo sau bởi con cháu của nó.

Cảnh báo

Sự kiện này bắt đầu với đối tượng con cháu đang được xóa. Cố gắng đặt Parent của con cháu vào một cái gì đó khác sẽ thất bại. Dưới đây là một ví dụ cho thấy điều này:


workspace.DescendantRemoving:Connect(function(descendant)
-- Do not manipulate the parent of the descendant in this function!
-- This event fires BECAUSE the parent was manipulated, and the change hasn't happened yet
-- Therefore, it is problematic to change the parent like this:
descendant.Parent = game
end)
local part = Instance.new("Part")
part.Parent = workspace
part.Parent = nil

Xem thêm DescendantAdded .

Tham Số

descendant: Instance

Class.Instance đang bị xóa.


Mẫu mã

Instance.DescendantRemoving

workspace.DescendantRemoving:Connect(function(descendant)
print(descendant.Name .. " is currently parented to " .. tostring(descendant.Parent))
end)
local part = Instance.new("Part")
part.Parent = workspace
part.Parent = nil
--> Part is currently parented to Workspace
print(part.Parent)
--> nil

Destroying

Các Instance sẽ không bao giờ được xóa khỏi bộ nhớ khi một chức năng kết nối vẫn đang sử dụng nó. Tuy nhiên, nếu chức năng này được gọi ở bất kỳ điểm nào, thì Instance và con cháu của nó sẽ được gọi là nil</

Nếu đặt Workspace.SignalBehavior tính năng lên Enum.SignalBehavior.Immediate, sự kiện này sẽ ngay lập tức khiến cho sự kiện Instance hoặc một trong những tiền nhân của nó bị tiêu diệt với 2>Class.Instance:Destroy2> .

Nếu thuộc tính Workspace.SignalBehavior được đặt thành Enum.SignalBehavior.Deferred, sự kiện này sẽ kích hoạt tại điểm tổng kết tiếp theo, which sẽ được sau khi Instance hoặc một trong những tiền nhân của nó được ti

Với hành vi Deferred, kết nối một script với sự kiện Instance.Destroying của riêng mình là vấn đề, vì script sẽ bị xóa trước khi hồi gọi có thể được gọi (ý nghĩa là nó sẽ không thể thi hành).

Khi xóa một Instance ở Studio, chẳng hạn như việc xóa thủ công qua Explorer hoặc qua một plugin, Instance không bị xóa. Thay vào đó, cha mẹ được đặt thành 1> nil1>


Mẫu mã

Using the Destroying Event (Immediate signals)

local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("Before yielding:", part:GetFullName(), #part:GetChildren())
task.wait()
print("After yielding:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
part:Destroy()
Using the Destroying Event (Deferred signals)

local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("In signal:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
print("Before destroying:", part:GetFullName(), #part:GetChildren())
part:Destroy()
print("After destroying:", part:GetFullName(), #part:GetChildren())