Object

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
복제되지 않음

개체는 Roblox 클래스 계층의 모든 클래스에 대한 기본 클래스입니다. Roblox 엔진이 정의하는 모든 다른 클래스는 모두 개체의 모든 구성원을 상속합니다. 개체를 직접 생성할 수는 없습니다.

요약

속성

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    이 클래스를 나타내는 읽기 전용 문자열은 Object 입니다.

메서드

  • 지정된 속성의 개체가 변경될 때 발생하는 이벤트를 가져옵니다.

  • IsA(className : string):bool
    병렬 쓰기

    지정된 클래스와 개체의 클래스가 일치하거나 상속되는 경우 true를 반환합니다.

이벤트

속성

ClassName

읽기 전용
복제되지 않음
병렬 읽기

이 클래스를 나타내는 읽기 전용 문자열은 Object 입니다.

이 속성은 개체를 입력식별하는 다양한 기타 함수와 함께 사용할 수 있습니다. Object:IsA() 또는 Instance:FindFirstChildOfClass() 등을 참조하십시오.

이 속성은 스크립트에 의해 읽을 수 없으므로 변경하려는 개체의 클래스를 만들어야 합니다. 개체의 클래스를 변경하려는 개발자는 대신 Object 를 새로 만들어야 합니다.

Class.Object:IsA() 와는 달리 ClassName 은 클래스 상속을 무시하는 특정 클래스에 속한지 여부를 확인하는 데 사용될 수 있습니다. 예를 들어:


for _, child in workspace:GetChildren() do
if child.ClassName == "Part" then
print("Found a Part")
-- will find Parts in model, but NOT TrussParts, WedgeParts, etc
end
end

메서드

GetPropertyChangedSignal

이 메서드는 Changed 이벤트와 동일하게 행동하는 이벤트를 반환하지만, 해당 속성이 변경될 때만 발생합니다. 일반적으로 이 메서드를 연결하는 대신 Changed 와 함수를 확인하는 연결을 사용하는 것이

Class.ValueBase 개체, 예를 들어 IntValueStringValue , 0> Class.Object.Changed|Changed0> 이벤트를 사용하여 그들의 ValueBase3> 속성에 대한 콘텐츠를 변경합니다. 따라서 이

이 이벤트는 연결된 함수에 아무런 인수도 전달하지 않으므로 변경된 속성의 값은 스크립트 내에서 직접 읽어야 합니다.

제한

이 메서드에서 반환되는 이벤트는 물리학 관련 변

또한, 속성이 매우 자주 변경되는 경우 반환된 이벤트가 발생하지 않을 수 있으며/또는 발생하지 않을 수도 있습니다. 게임 로직에 영향을 미치는 속성 변경에 대해 게임에서 테스트하는 것이 좋습니다.

매개 변수

property: string

연결할 속성입니다.


반환

속성이 변경될 때 발생하는 신호입니다.

코드 샘플

This code sample demonstrates how to save a value before a changed event fires on it in order to get more information about a change.

Old-to-New Values with Changed

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")

This code sample demonstrates the equivalence of the Changed event and event returned by GetPropertyChangedSignal.

Changed and GetPropertyChangedSignal

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가 반환됩니다.

매개 변수

className: string

개체의 클래스가 검사될 클래스입니다. 케이스 민감.


반환

개체의 클래스가 일치하는지 여부 또는 지정된 클래스의 하위인지 설명합니다.

코드 샘플

Demonstrates determining the class of Workspace using Instance:IsA()

Workspace is of class 'Workspace', so the first statement is true. Workspace is not of class 'BasePart', so the second statement is false. Workspace inherits from Instance and therefore is of class 'Instance', so the third statement is true.

Instance:IsA()

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 개체, 예를 들어 IntValueStringValue 은 이 이벤트가 발생할 때만 작동합니다. 다른 변경 사항을 감지하려면 1>Class.Object:GetPropertyChangedSignal()|GetPropertyChangedSignal() 을 사용하

제한

이 이벤트는 물리적 변경 사항, 예를 들어 Class.BasePart.C

또한, 이 이벤트는 속성이 매우 자주 변경되는 경우 발생하지 않으며/또는 발생하지 않을 수 있습니다. 게임 로직에 영향을 주는 속성 변경에 대해 철저하게 테스트하는 것이 좋습니다.

매개 변수

property: string

변경된 속성의 이름입니다.


코드 샘플

This sample demonstrates the subtleties of the Changed event on normal objects and "-Value" objects.

Changed Event

-- 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"

This code sample demonstrates the Changed event firing within a parent object.

Change Detector

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