Object

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Direplikasi

Objek adalah kelas dasar untuk semua kelas dalam hierarki kelas Roblox. Setiap kelas lain yang didefinisasi oleh mesin Roblox mewarisi semua anggota dari Objek. Tidak mungkin untuk secara langsung membuat Objek.

Rangkuman

Properti

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Sebuah string hanya baca mewakili kelas ini Object berasal dari.

Metode

Acara

Properti

ClassName

Hanya Baca
Tidak Direplikasi
Baca Paralel

Sebuah string hanya baca mewakili kelas ini Object berasal dari.

Propiedad ini dapat digunakan dengan berbagai fungsi lain yang digunakan untuk mengidentifikasi objek berdasarkan ketik, seperti Object:IsA() atau Instance:FindFirstChildOfClass().

Catatlah bahwa properti ini hanya dibaca dan tidak dapat diubah oleh skrip. Pengembang yang ingin mengubah kelas objek akan memiliki Object baru.

Tidak seperti Object:IsA() , ClassName dapat digunakan untuk memeriksa apakah objek berasal dari kelas tertentu yang mengabaikan warisan kelas. Misalnya:


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

Metode

GetPropertyChangedSignal

Metode ini mengembalikan acara yang bersikap persis seperti acara Changed , kecuali bahwa itu hanya berfungsi ketika nama property berubah. Ini umumnya merupakan ide yang bagus untuk menggunakan metode ini alih-alih koneksi ke Changed dengan fungsi yang memer

Class.ValueBase objek, seperti IntValue dan StringValue, menggunakan acara 0> Class.Object.Changed|Changed0> yang diaktifkan dengan konten dari properti mereka ValueBase3>. Sebagai metode ini, metode ini menyediakan cara untuk mendeteksi perubahan di

Catat bahwa acara ini tidak akan mengirimkan argument apa pun ke fungsi terhubung, jadi nilai properti yang diubah harus dibaca secara langsung dalam script.

Keterbatasan

Acara yang dikembalikan oleh metode ini tidak membakar unt

Selain itu, acara yang dikembalikan mungkin tidak berfungsi pada setiap modifikasi properti yang sering berubah, dan/atau mungkin tidak berfungsi sama semua. Disarankan agar Anda secara hati-hati menguji perubahan properti yang mempengaruhi logika permainan.

Parameter

property: string

Properti untuk dihubungkan.


Memberikan nilai

Sinyal yang diaktifkan setiap kali properti berubah.

Contoh Kode

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

Tulis Paralel

IsA menyelesaikan true jika kelas objek adalah ivalu atau subclass subclass dari kelas yang diberikan. Fungsi ini mirip dengan operator #Class.Object.className|className di bah

Sebagai contoh, fungsi ini digunakan untuk menguji apakah objek adalah beberapa jenis bagian, seperti Part atau Class


local function paintFigure(character, color)
-- Iterate atas objek anak karakter
for _, child in character:GetChildren() do
-- Filter out non-part object, seperti Shirt, Pants dan Humanoid
-- R15 menggunakan MeshPart dan R6 menggunakan Part, jadi kami menggunakan BasePart di sini untuk mendeteksi kedua:
if child:IsA("BasePart") then
child.BrickColor = color
end
end
end
paintFigure(game.Players.Player.Character, BrickColor.new("Bright blue"))

Karena semua kelas mewarisi dari Object, menelepon object:IsA("Object") akan selalu mengembalikan benar.

Parameter

className: string

Kelas yang akan diperiksa kelas Objek. Sensitif kasus.


Memberikan nilai

Menggambarkan apakah kelas Objek cocok atau merupakan subclass dari kelas yang diberikan.

Contoh Kode

Instance:IsA()

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

Acara

Changed

Acara ini menyetel segera setelah kepemilikan objek diubah dan bekerja dengan kebanyakan kasus penggunaan (lihat batasan di bawah).Nilai baru dari kepemilikan property yang diubah adalah tidak dilewati sebagai parameter, jadi harus diakses dengan menggunakan object[property] .Misalnya:


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

Jika Anda hanya tertarik untuk mendengarkan perubahan satu property spesifik, pertimbangkan menggunakan metode GetPropertyChangedSignal() sebagai gantinya.

Untuk objek ValueBase seperti IntValue dan StringValue, acara ini hanya diaktifkan ketika propietas 1> Value1> objek berubah. Untuk mendeteksi perubahan lain di 4> Class.ValueBase4> obj

Keterbatasan

Acara ini tidak <a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-

Selain itu, acara ini mungkin tidak menyetel setiap perubahan properti yang sering berubah, dan / atau mungkin tidak menyetel untuk setiap properti seperti itu sama sekali. Diperlukan untuk diuji dengan hati-hati untuk perubahan properti yang mempengaruhi logika permainan.

Parameter

property: string

Nama properti yang berubah.


Contoh Kode

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