요약
속성
UniqueId:UniqueId |
메서드
이벤트
AncestryChanged(child: Instance,parent: Instance):RBXScriptSignal |
AttributeChanged(attribute: string):RBXScriptSignal |
ChildAdded(child: Instance):RBXScriptSignal |
childAdded(child: Instance):RBXScriptSignal |
ChildRemoved(child: Instance):RBXScriptSignal |
DescendantAdded(descendant: Instance):RBXScriptSignal |
DescendantRemoving(descendant: Instance):RBXScriptSignal |
상속된 멤버
API 참조
속성
archivable
RobloxLocked
UniqueId
Instance.UniqueId:UniqueId
메서드
children
ClearAllChildren
Instance:ClearAllChildren():()
반환
()
Clone
반환
코드 샘플
인스턴스 복제
local Workspace = game:GetService("Workspace")
-- 기존 객체에 대한 참조 가져오기
local model = script.Parent.Model
-- 모델의 복제본 만들기
local clone = model:Clone()
-- 복제본이 원본 모델과 겹치지 않도록 이동하기
clone:PivotTo(model.PrimaryPart.CFrame - (Vector3.xAxis * 10))
-- 복제본을 Workspace에 추가하기
clone.Parent = Workspaceclone
Destroy
Instance:Destroy():()
반환
()
코드 샘플
인스턴스:Destroy()
local part = script.Parent.Part
part:Destroy()destroy
FindFirstAncestorOfClass
FindFirstAncestorWhichIsA
FindFirstChild
findFirstChild
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
endFindFirstChildWhichIsA
GetAttributeChangedSignal
매개 변수
GetChildren
Instance:GetChildren():Instances
반환
Instances
코드 샘플
인스턴스:GetChildren
local children = workspace:GetChildren()
for i = 1, #children do
print(i, children[i].Name)
endgetChildren
GetDebugId
GetDescendants
Instance:GetDescendants():Instances
반환
Instances
코드 샘플
Instance:GetDescendants
local descendants = workspace:GetDescendants()
-- 작업 공간의 모든 자손을 반복합니다. 만약
-- BasePart가 발견되면, 코드는 해당 부품의 색상을 녹색으로 변경합니다.
for _, descendant in pairs(descendants) do
if descendant:IsA("BasePart") then
descendant.BrickColor = BrickColor.Green()
end
endGetFullName
반환
코드 샘플
인스턴스:전체이름가져오기
-- 간단한 계층 구조 생성
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 = "안녕, 세상"
print(fire:GetFullName()) --> Workspace.Model.안녕, 세상.FireInstance:GetFullName Lua 구현
local function getFullName(object)
local result = object.Name
object = object.Parent
while object and object ~= game do
-- 부모 이름 추가하기
result = object.Name .. "." .. result
-- 계층 구조 위로 이동하기
object = object.Parent
end
return result
end
print(getFullName(workspace.Camera)) --> Workspace.CameraGetStyled
GetStyledPropertyChangedSignal
매개 변수
IsAncestorOf
매개 변수
반환
코드 샘플
Instance:IsAncestorOf()
local Workspace = game:GetService("Workspace")
local spawnLocation = Workspace.SpawnLocation
local decal = spawnLocation.Decal
-- 이 문장은 참입니다
print(Workspace:IsAncestorOf(spawnLocation))
print(Workspace:IsAncestorOf(decal))
print(spawnLocation:IsAncestorOf(decal))
-- 이 문장은 거짓입니다
print(spawnLocation:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(spawnLocation))IsDescendantOf
매개 변수
반환
코드 샘플
인스턴스: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))
--> trueisDescendantOf
Remove
remove
SetAttribute
이벤트
AncestryChanged
코드 샘플
인스턴스.조상변경됨
local Workspace = game:GetService("Workspace")
local redPart = script.Parent.RedPart
local bluePart = script.Parent.BluePart
local changingPart = script.Parent.ChangingPart
-- changingPart의 부모에 따라 색상을 변경합니다
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}의 부모가 이제 {parent.Name}입니다.`)
end
changingPart.AncestryChanged:Connect(onAncestryChanged)
-- changingPart의 Parent 속성을 시간이 지나면서 다른 인스턴스로 설정합니다
while true do
task.wait(2)
changingPart.Parent = redPart
task.wait(2)
changingPart.Parent = bluePart
task.wait(2)
changingPart.Parent = Workspace
endChildAdded
매개 변수
코드 샘플
Instance.ChildAdded
local function onChildAdded(instance)
print(instance.Name .. " 작업 공간에 추가됨")
end
workspace.ChildAdded:Connect(onChildAdded)
local part = Instance.new("Part")
part.Parent = workspace --> Part가 작업 공간에 추가됨childAdded
ChildRemoved
매개 변수
코드 샘플
인스턴스.자식제거됨
local function onChildRemoved(instance)
print(instance.Name .. " 작업공간에서 제거됨")
end
workspace.ChildRemoved:Connect(onChildRemoved)
local part = Instance.new("Part")
part.Parent = workspace
task.wait(2)
part:Destroy()DescendantAdded
매개 변수
코드 샘플
인스턴스.자식추가됨
local function onDescendantAdded(descendant)
print(descendant)
end
workspace.DescendantAdded:Connect(onDescendantAdded)
local part = Instance.new("Part")
part.Parent = workspaceDescendantRemoving
매개 변수
코드 샘플
인스턴스.하위항목제거
workspace.DescendantRemoving:Connect(function(descendant)
print(descendant.Name .. "는 현재 " .. tostring(descendant.Parent) .. "에 있습니다.")
end)
local part = Instance.new("Part")
part.Parent = workspace
part.Parent = nil
--> Part는 현재 Workspace에 있습니다.
print(part.Parent)
--> nilDestroying
코드 샘플
파괴 이벤트 사용하기 (즉시 신호)
local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("대기 전에:", part:GetFullName(), #part:GetChildren())
task.wait()
print("대기 후:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
part:Destroy()파괴 이벤트 사용 (지연 신호)
local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("신호 중:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
print("파괴 전:", part:GetFullName(), #part:GetChildren())
part:Destroy()
print("파괴 후:", part:GetFullName(), #part:GetChildren())