選擇服務控制 Roblox Studio 中選擇的 Instances。
此服務特別有用,當開發 Plugins 時,它允許開發者存取並操作當前選擇。
目前選擇 Instances 可以使用 Selection:Get() 和 Selection:Set() 函數獲得和設置。 1> Class.Selection.SelectionChanged1> 事件會在當前選擇變更時發生。
有關使用 Selection 和 Plugins 的更多資訊,請參閱 Plugin。
選擇也常常用在指令欄中,以設定隱藏屬性或執行指定的 Instances 的函數。
注意此類只適用於 Roblox Studio,並且沒有適用於遊戲。
範例程式碼
local Selection = game:GetService("Selection")
for _, object in pairs(Selection:Get()) do
if object:IsA("BasePart") then
object.CFrame = object.CFrame * CFrame.Angles(0, math.pi / 2, 0)
end
end
屬性
SelectionThickness
方法
Add
參數
返回
Get
在 Roblox Studio 中返回目前選擇的 Instances 列表。
如果未選擇任何 Instances ,返回的陣列將為空。這個功能可以與 Selection.SelectionChanged 事件結合,以便在選擇變更時暢享選擇。
注意,此功能只能在 Plugins 或指令線中使用。
變更目前選擇,請參閱 Selection:Set() 。
返回
一個選擇當前 Instances 的列表。
範例程式碼
local Selection = game:GetService("Selection")
for _, object in pairs(Selection:Get()) do
if object:IsA("BasePart") then
object.CFrame = object.CFrame * CFrame.Angles(0, math.pi / 2, 0)
end
end
local selection = game:GetService("Selection")
selection.SelectionChanged:Connect(function()
print("Selection contains " .. #selection:Get() .. " items.")
end)
Remove
參數
返回
Set
將目前選擇的對象在 Roblox Studio 設為 Instances 在指定的陣列中。
呼叫此函數會導致 Selection.SelectionChanged 事件發觸發,除非新選擇集與上一個選擇集相同。
注意此功能會覆蓋現有選擇。但使用 Selection:Get() 和 Instance 可以添加到現有選擇中:
local selected = Selection:Get()table.insert(selected, object)Selection:Set(selected)
參數
一個 Instances 陣列,用於設置目前的選擇。
返回
範例程式碼
local Selection = game:GetService("Selection")
local newSelection = {}
for _, object in pairs(workspace:GetDescendants()) do
if object:IsA("BasePart") and object.BrickColor == BrickColor.new("Bright red") then
table.insert(newSelection, object)
end
end
Selection:Set(newSelection)
活動
SelectionChanged
在 Roblox Studio 選擇 Instances 時發射。
注意這個事件並不會提供新選擇。開發人員需要使用 Selection:Get() 函數來取得目前的選擇。
雖然此事件可以在外觀和指令欄中使用,但它只適用於 Roblox Studio 中的選擇,因此沒有功能在 Studio 外。
要變更選擇,請使用 Selection:Set() 函數。
範例程式碼
local selection = game:GetService("Selection")
selection.SelectionChanged:Connect(function()
print("Selection contains " .. #selection:Get() .. " items.")
end)