Object

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
ไม่ซ้ำ

เป็นคลาสเริ่มต้นสำหรับทุกคลาสในหินคลาสของ Roblox เป็นเรื่องของมารยาททั้งหมดของ Roblox ที่จะมีสมาชิกทั้งหมดของเป็นเรื่องของมารยาททั้งหมด ไม่สามารถสร้างเป็นได้โดยตรง

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    สตริงที่อ่านเท่านั้นที่แทนที่คลาสนี้ Object เป็นของ

วิธีการ

  • รับเหตุการณ์ที่เกิดขึ้นเมื่อสมบัติส่วนหนึ่งของตัวองค์เปลี่ยนแปลง

  • IsA(className : string):bool
    เขียนพร้อมๆ กัน

    กลับ true หากคลาสของวัตถุตรงกับหรือมีความสมบูรณ์จากคลาสที่กำหนด

อีเวนต์

  • ได้รับการยิงทันทีหลังจากเปลี่ยนแปลงสถานะของตัวองค์กับบางข้อจํากัด

คุณสมบัติ

ClassName

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

สตริงที่อ่านเท่านั้นที่แทนที่คลาสนี้ Object เป็นของ

สมบัตินี้สามารถใช้กับตัวแปรอื่น ๆ พิมพ์Object:IsA() หรือ Instance:FindFirstChildOfClass()

หมายเหตุคุณสมบัตินี้อ่านเฉพาะและไม่สามารถเปลี่ยนแปลงได้โดยสคริปต์ ผู้พัฒนาที่ต้องการเปลี่ยนคลาสของวัตถุจะต้องสร้าง Object ใหม่

ในขณะที่ 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

วิธีนี้กลับมาเป็นอีเว้นที่เกิดขึ้นเมื่อคุณสมบัติที่กำหนดได้เปลี่ยนแปลงตามที่เกิดขึ้นจริง ยกเว้นว่ามันจะเพียงแค่ได้รับการเปลี่ยน

ValueBase วัตถุ เช่น IntValue และ StringValue ใช้งาน กิจกรรม 0> Class.Object.Changed|Changed0> ที่ปรับแต่ง ซึ่งจะเปิดใช้งานด้วยเนื้อห

โปรดทราบว่าเหตุการณ์นี้จะไม่ส่งค่าตัวละครที่เปลี่ยนแปลงให้กับฟังก์ชันที่เชื่อมต่อ ดังนั้นค่าของสมบัติที่เปลี่ยนแปลงจะต้องอ่านโดยตรงภายในสคริป

ข้อจํากัด

เหตุการณ์ที่ได้รับการรีเทิร์นโ

นอกจากนี้ การเหตุการณ์ที่กลับมาอาจไม่ได้เกิดขึ้นทุกครั้งที่เปลี่ยนแปลงสมบัติสมบัติบ่อยเกินไป และ/หรืออาจไม่ได้เกิดขึ้นสำหรับสมบัติสมบัติเหล่านี้เลย มันเป็นเรื่องที่แนะนำให้ทดสอบอย่างรอ

พารามิเตอร์

property: string

รายการที่ต้องการเชื่อมต่อ


ส่งค่ากลับ

สัญญาณที่ยิงเมื่ออายุการใช้งานของสินค้าเปลี่ยนแปลง

ตัวอย่างโค้ด

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")
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 จะกลับ true หากคลาสของวัตถุเป็น เทียบเท่ากับ หรือ subclass ของคลาสที่กำหนดไว้ ฟัง

โดยทั่วไป, ฟังก์ชันนี้ใช้เพื่อทดสอบว่าวัตถุเป็นของชนิดใด,


local function paintFigure(character, color)
-- ทำซ้ำเหนือวัตถุลูกของตัวละคร
for _, child in character:GetChildren() do
-- กรองวัตถุที่ไม่ใช่ส่วน เช่นเสื้อเสื้อ
-- R15 ใช้ MeshPart และ R6 ใช้ Part, ดังนั้นเราจึงใช้ BasePart ที่นี่เพื่อตรวจจับทั้งสอง:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))

เนื่องจากทุกคลาสมีการมีสมาชิกจาก Object ดังนั้นการเรียก object:IsA("Object") จะส่งคืนเสมอ

พารามิเตอร์

className: string

คลาสที่ระบุว่าคลาสของวัตถุจะตรวจสอบ


ส่งค่ากลับ

อธิบายว่าคลาสของวัตถุตรงหรือไม่ หรือเป็นคลาสลูกของคลาสที่ให้

ตัวอย่างโค้ด

Instance:IsA()

local Workspace = game:GetService("Workspace")
print(Workspace:IsA("Workspace")) -- true
print(Workspace:IsA("BasePart")) -- false
print(Workspace:IsA("Instance")) -- true

อีเวนต์

Changed

เหตุการณ์นี้จะเกิดขึ้นทันทีหลังจากที่ค่าสมบัติของวัตถุเปลี่ยนแปลงและทำงานร่วมกับส่วนใหญ่ของกรณีการใช้งาน (ดูข้อจํากัดด้านล่าง) มีค่าใหม่ของวัตถุเปลี่ยนแปลงคือ ไ


object.Changed:Connect(function(property)
print("The new property's value is", object[property])
end)

หากคุณสนใจเฉพาะเกี่ยวกับการเปลี่ยนแปลงของโปรไฟล์ที่เฉพาะเจาะจงเท่านั้น โปรดพิจารณาใช้วิธีการ GetPropertyChangedSignal() แทน

สำหรับวัตถุ ValueBase เช่น IntValue และ StringValue อีเวนต์นี้จะเริ่มเฉพาะเมื่อสมบัติของวัตถุเปลี่ยนแปล

ข้อจํากัด

เหตุการณ์นี้ไม่ได้เกิดขึ้นสำหรับก

นอกจากนี้ เหตุการณ์นี้อาจไม่เกิดขึ้นทุกครั้งที่เปลี่ยนแปลงสมบัติสินค้าที่เปลี่ยนแปลงบ่อยมากหรือไม่ และ/หรืออาจไม่เกิดขึ้นเลยสำหรับสมบัติสินค้าดังกล่าวทั้งหมด มันเป็นการแนะนำให้คุณทดสอบอ

พารามิเตอร์

property: string

ชื่อของสมบัติที่เปลี่ยนแปลง


ตัวอย่างโค้ด

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