개체는 Roblox 클래스 계층의 모든 클래스에 대한 기본 클래스입니다. Roblox 엔진이 정의하는 모든 다른 클래스는 모두 개체의 모든 구성원을 상속합니다. 개체를 직접 생성할 수는 없습니다.
요약
메서드
지정된 속성의 개체가 변경될 때 발생하는 이벤트를 가져옵니다.
지정된 클래스와 개체의 클래스가 일치하거나 상속되는 경우 true를 반환합니다.
이벤트
개체의 속성이 변경된 후 즉시 발생하지만 일부 제한이 있습니다.
속성
ClassName
이 클래스를 나타내는 읽기 전용 문자열은 Object 입니다.
이 속성은 개체를 입력식별하는 다양한 기타 함수와 함께 사용할 수 있습니다. Object:IsA() 또는 Instance:FindFirstChildOfClass() 등을 참조하십시오.
이 속성은 스크립트에 의해 읽을 수 없으므로 변경하려는 개체의 클래스를 만들어야 합니다. 개체의 클래스를 변경하려는 개발자는 대신 Object 를 새로 만들어야 합니다.
Class.Object:IsA() 와는 달리 ClassName 은 클래스 상속을 무시하는 특정 클래스에 속한지 여부를 확인하는 데 사용될 수 있습니다. 예를 들어:
for _, child in workspace:GetChildren() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
메서드
GetPropertyChangedSignal
이 메서드는 Changed 이벤트와 동일하게 행동하는 이벤트를 반환하지만, 해당 속성이 변경될 때만 발생합니다. 일반적으로 이 메서드를 연결하는 대신 Changed 와 함수를 확인하는 연결을 사용하는 것이
Class.ValueBase 개체, 예를 들어 IntValue 및 StringValue , 0> Class.Object.Changed|Changed0> 이벤트를 사용하여 그들의 ValueBase3> 속성에 대한 콘텐츠를 변경합니다. 따라서 이
이 이벤트는 연결된 함수에 아무런 인수도 전달하지 않으므로 변경된 속성의 값은 스크립트 내에서 직접 읽어야 합니다.
제한
이 메서드에서 반환되는 이벤트는 물리학 관련 변
또한, 속성이 매우 자주 변경되는 경우 반환된 이벤트가 발생하지 않을 수 있으며/또는 발생하지 않을 수도 있습니다. 게임 로직에 영향을 미치는 속성 변경에 대해 게임에서 테스트하는 것이 좋습니다.
매개 변수
연결할 속성입니다.
반환
속성이 변경될 때 발생하는 신호입니다.
코드 샘플
local part = Instance.new("Part")
local currentColor = part.BrickColor
local function onBrickColorChanged()
local newColor = part.BrickColor
print("Color changed from", currentColor.Name, "to", newColor.Name)
currentColor = newColor
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Really blue")
local part = Instance.new("Part")
local function onBrickColorChanged()
print("My color is now " .. part.BrickColor.Name)
end
local function onChanged(property)
if property == "BrickColor" then
onBrickColorChanged()
end
end
part:GetPropertyChangedSignal("BrickColor"):Connect(onBrickColorChanged)
part.Changed:Connect(onChanged)
-- Trigger some changes (because we connected twice,
-- both of these will cause two calls to onBrickColorChanged)
part.BrickColor = BrickColor.new("Really red")
part.BrickColor = BrickColor.new("Institutional white")
IsA
IsA는 개체의 클래스가 상당한 클래스의 하위 또는 하위 클래스 인지 여부로 트루 또는 틀립니다. 이 함수는 다른 언어의 <
대부분의 경우 이 함수는 개체가 Part 또는 WedgePart 와 같은 종류의 부품인지
local function paintFigure(character, color)
-- 캐릭터의 자식 개체를 반복
for _, child in character:GetChildren() do
-- 셔츠, 바지 및 인간형과 같은 비 부품 개체를 필터링하십시오
-- R15에서는 MeshPart를 사용하고 R6에서는 Part를 사용하므로 여기에서 베이스 부품을 감지하려면 베이스 부품을 사용합니다.
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))
모든 클래스가 Object에서 상속되므로 object:IsA("Object") 를 호출하면 항상 true가 반환됩니다.
매개 변수
개체의 클래스가 검사될 클래스입니다. 케이스 민감.
반환
개체의 클래스가 일치하는지 여부 또는 지정된 클래스의 하위인지 설명합니다.
코드 샘플
local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true
이벤트
Changed
이 이벤트는 개체 속성이 변경된 후 즉시 발생하며 대부분의 사용 사례에서 작동합니다(아래 참조). 변경된 속성의 새 값은 이 아님 매개 변수로 전달되므로 object[property] 을 사용하여 액세스해야 합니다. 예:
object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)
특정 속성의 변경만 들으려면 GetPropertyChangedSignal() 메서드를 대신 사용하십시오.
Class.ValueBase 개체, 예를 들어 IntValue 및 StringValue 은 이 이벤트가 발생할 때만 작동합니다. 다른 변경 사항을 감지하려면 1>Class.Object:GetPropertyChangedSignal()|GetPropertyChangedSignal() 을 사용하
제한
이 이벤트는 물리적 변경 사항, 예를 들어 Class.BasePart.C
또한, 이 이벤트는 속성이 매우 자주 변경되는 경우 발생하지 않으며/또는 발생하지 않을 수 있습니다. 게임 로직에 영향을 주는 속성 변경에 대해 철저하게 테스트하는 것이 좋습니다.
매개 변수
변경된 속성의 이름입니다.
코드 샘플
-- Demonstrate the Changed event by creating a Part
local part = Instance.new("Part")
part.Changed:Connect(print)
-- This fires Changed with "Transparency"
part.Transparency = 0.5
-- Similarly, this fires Changed with "Number"
part.Name = "SomePart"
-- Since changing BrickColor will also change other
-- properties at the same time, this line fires Changed
-- with "BrickColor", "Color3" and "Color3uint16".
part.BrickColor = BrickColor.Red()
-- A NumberValue holds a double-precision floating-point number
local vNumber = Instance.new("NumberValue")
vNumber.Changed:Connect(print)
-- This fires Changed with 123.456 (not "Value")
vNumber.Value = 123.456
-- This does not fire Changed
vNumber.Name = "SomeNumber"
-- A StringValue stores one string
local vString = Instance.new("StringValue")
vString.Changed:Connect(print)
-- This fires Changed with "Hello" (not "Value")
vString.Value = "Hello"
local object = script.Parent
local function onChanged(property)
-- Get the current value of the property
local value = object[property]
-- Print a message saying what changed
print(object:GetFullName() .. "." .. property .. " (" .. typeof(value) .. ") changed to " .. tostring(value))
end
object.Changed:Connect(onChanged)
-- Trigger a simple change in the object (add an underscore to the name)
object.Name = "_" .. object.Name