對象是 Roblox 類別階層中的所有類別的基本類別。 所有其他類別,由 Roblox 引擎定義,都會繼承所有對象的成員。 不是直接創建對象的。
概要
方法
獲得發生在某個物件特性變更時的事件。
如果對物件的類型與指定類型相符或継承,則返回 true。
活動
在對象的屬性變更後立即發射,但有一些限制。
屬性
ClassName
一個只讀取Class的字串代表Class的來源。
這個屬性可以與多種其他用於識別對象類輸入的功能,例如 Object:IsA() 或 Instance:FindFirstChildOfClass() 。
注意此屬性只閱取,並且不能由腳本變更對物件的類別。開發人員想要變更對象的類別的話,會相反需要建立新的 Object 。
與 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 個,例如 Class.IntValue 和 Class.StringValue ,使用修改後的 0> Class.Object.Changed|Changed 事件發射其內容的 ValueBase3>。因此,此方法提供一種方法來偵測這些對象的其他屬性。
注意,這個事件不會傳送任何參數給連接的函數,因此變更的屬性必須在指令碼中直接閱取。
限制
這個方法的返回事件不會發生物理相關變更,例如當 Class
此外,返回的事件可能不會在每次變更屬性變更非常頻繁時發生,並且/或在此類屬性上發生。建議您仔細測試發生遊戲邏輯影響的屬性變更。
參數
連接到的屬性。
返回
一個信號,當屬性變更時發生。
範例程式碼
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 返回 字串rue 如果對物件的類別是 相當於 或提供的一個 子類 。 此功能與其他語言中的 類型檢查器 類似,並且是一
最常見的情況是,這個函數通常用來測試對象是否是某種零件,例如 Part 或 WedgePart,這
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") 將永遠返回真。
參數
對象的類別將被檢查的類別。 對象敏感。
返回
描述對象是否匹配或是否是指定類的子類。
範例程式碼
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() 方法。
對於 ValueBase 對象,例如 IntValue 和 StringValue,此事件只會在對物件的 1> Value1> 屬性變更時僅發生。若要偵測其他變更在 4> Class.ValueBase
限制
此事件不會發生於物理相關變更,例如當 Class.BasePart.CFrame|CFrame
此外,此事件可能不會在每次更改屬性變更非常頻繁時發生,並且/或者它可能不會發生此全部 所有屬性。建議您仔細測試發生遊戲邏輯影響的屬性變更。
參數
變更名稱。
範例程式碼
-- 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