对象值是一个用于存储单个对另一个对象的引用的对象。如果该对象在 Studio 中复制,且值指向正在复制的对象,那么新的 ObjectValue 将指向复制的对象而不是原始对象。否则,保留相同的值。复制并粘贴此对象将清除值字段。
这的值可以像其他参考类型字段一样在 Studio 中设置(例如 Model.PrimaryPart):单击属性窗口中的字段,然后单击您希望将其设置为游戏视图或 Explorer 窗口的对象。您可以通过单击字段时出现的 X 清除字段(将其设置为 nil)。
像所有 "-Value" 对象一样,这个单值被存储在价值属性中。为此更改的事件(以及其他类似的对象)将使用新值在对象中存储,而不是使用代表被更改的属性的字符串发射。
代码示例
This code sample creates an ObjectValue in the Workspace which holds a reference to an object in the workspace named "Baseplate".
local objectValue = Instance.new("ObjectValue")
objectValue.Name = "MyBaseplateReference"
objectValue.Value = workspace:FindFirstChild("Baseplate")
objectValue.Parent = workspace
概要
活动
每当 ObjectValue.Value 被更改时发射。
属性
方法
活动
Changed
这个事件会在 ObjectValue.Value 属性发生改变时触发。它将运行在新值被存储在参数对象中,而不是代表正在更改的属性的字符串。
这个事件,像其他更改的事件一样,可以用来跟踪当一个 ObjectValue 更改时以及它可能更改的不同值。
例实例,这甚至可能在依赖对象值来跟踪游戏状态和值的游戏中有用,例如 RPG 瞄准系统。
相同类型的更改事件存在于类似对象,例如 NumberValue 和 StringValue,根据需求选择最适合的对象类型。
参数
更改后的值。
代码示例
This example prints the path to the newly reference instance when the ObjectValue's value property is changed.
local objectValue = script.Parent.ObjectValue
local part = script.Parent.Part
local function printObject(object)
print(object:GetFullName())
end
objectValue.Changed:Connect(printObject)
objectValue.Value = part