Object
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
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
Metode
Dapatkan acara yang diaktifkan ketika propinsi tertentu dari objek berubah.
Mengembalikan benar jika kelas objek cocok atau mewarisi dari kelas tertentu yang diberikan.
Acara
Dibakar segera setelah kepemilikan objek berubah, dengan beberapa batasan.
Properti
ClassName
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() doif child.ClassName == "Part" thenprint("Found a Part")-- will find Parts in model, but NOT TrussParts, WedgeParts, etcendend
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
Properti untuk dihubungkan.
Memberikan nilai
Sinyal yang diaktifkan setiap kali properti berubah.
Contoh Kode
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 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
Kelas yang akan diperiksa kelas Objek. Sensitif kasus.
Memberikan nilai
Menggambarkan apakah kelas Objek cocok atau merupakan subclass dari kelas yang diberikan.
Contoh Kode
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
Nama properti yang berubah.
Contoh Kode
-- 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