PluginGui

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Çoğaltılmamış

PluginGui, Roblox Studio'daki çeşitli GUI'lerin görüntülenmesini sağlayan abstrakt bir klasördür. Şu anda mevcut olan tek bir PluginGui türü GuiObjects , ancak gelecekte daha fazlası olabilir!

Özet

Özellikler

Şuradan alınan Özellikler: LayerCollectorŞuradan alınan Özellikler: GuiBase2d

Yöntemler

Etkinlikler

Şuradan alınan Etkinlikler: GuiBase2d

Özellikler

Title

Paralel oku

PluginGui içeriklerinin üzerinde gösterilen başlık.Varsayılan boş bir dizi.

Yöntemler

BindToClose

void

Bu işlev, bir işlevi PluginGui kapatma düğmesine bağlar, varsayılan davranışı üstünü alır.

Varsayılan olarak, kullanıcı PluginGui sağ üst köşesindeki 'x' butonuna tıklayınca Enabled özelliği false olarak ayarlanır, pencereyi kapatır. Bir özelleştirme işlevi kullanıcıyı 2>Class.PluginGui

Varsayılan kapatma davranışı bu işlev tarafından yerleştirildiğinden, PluginGui 'yu manuel olarak kapatmak için PluginGui.Enabled ile kapatmak zorunda kalacaksınız. Örneğin, aşağıdaki kodda kullanıcılar GUI'yi kapatmak için onay düğmesine t


local closing = false
pluginGui:BindToClose(function()
-- düğme yapmadığımızdan emin olun
if closing then
return
end
closing = true
-- olluşturma onayı düğmesi
local confirmButton = Instance.new("TextButton")
confirmButton.AnchorPoint = Vector2.new(0.5, 0.5)
confirmButton.Size = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.Position = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.BackgroundColor3 = Color3.new(1, 0, 0)
confirmButton.Text = "Close?"
confirmButton.Parent = pluginGui
-- tıklama için dinle
confirmButton.Activated:Connect(function()
-- gui'yi kapat
pluginGui.Enabled = false
-- kaldırma onayı düğmesini kaldır
confirmButton:Destroy()
end)
end)

BindToClose'ı 'unbind' yapmak ve aşağıda açıklanan varsayılan davranışa geri dönmek için herhangi bir argüman olmadan çağırabilirsiniz. Örneğin:


pluginGui:BindToClose()

Ayrıca bakınız:

Parametreler

function: function

Yakın düğmesine bağlanan işlev. Eğer işlev belirtilmediyse, belirlenmiş herhangi bir işlev bağlanmayacaktır.

Varsayılan değer: "nil"

Dönüşler

void

GetRelativeMousePosition

Eklenti Güvenliği

GetRelativeMousePosition, PluginGui 'nin sol üst köşesine ilişkin farklı olan mouse'nin konumunu içerir. Sunulan değer sadece PluginGui'de bir mouse'nin girme başladığında veya mouse'nin şimdi pencere üzerinde bulunduğunda değişir.


Dönüşler

Mouse'un PluginGui'ye kadar olan ekran pozisyonu.

Kod Örnekleri

PluginGui:GetRelativeMousePosition

local RunService = game:GetService("RunService")
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float,
true,
false, -- Enabled state, override
200,
300, -- Size
150,
150 -- Minimum size
)
local testWidget = plugin:CreateDockWidgetPluginGui("TestWidget", widgetInfo)
function update()
local v2 = testWidget:GetRelativeMousePosition()
testWidget.Title = ("(%d, %d)"):format(v2.x, v2.y)
end
RunService.Stepped:Connect(update)
update()

Etkinlikler

PluginDragDropped

Eklenti Güvenliği

PluginDragDropped çalıştığında kullanıcı bir PluginGui ile fareyi bir Plugin:StartDrag() içinde başlatan bir kaydırma işlemini etkisi altına alır.

Ayrıca bakınız:

Parametreler

dragData: Dictionary

Kod Örnekleri

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragEntered

Eklenti Güvenliği

PluginDragEntered çıktığında kullanıcının mouse'u PluginGui'e girdiğinde bir çekme işlemi başlatıldığında ateş edilir.

Bu etkinlik, bir "Drop Here" UI'ini PluginGuis'te gösteren bir "Buraya Bırak" ekranının kullanıcılar tarafından gösterilmesine yararlıdır. Bu tür bir UI, bir çekme işleminin bırakıldığında gizlenmelidir. Errors: Error: Drop Here Severity: major --- Error: bırakıldığında gizlenmelidir Severity

Ayrıca bakınız:

Parametreler

dragData: Dictionary

Verilerin orijinal olarak Plugin:StartDrag() 'a kopyalanması.


Kod Örnekleri

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragLeft

Eklenti Güvenliği

PluginDragLeft , kullanıcının bir PluginGui ile etkileşim kurarken çalışır. Plugin:StartDrag() ile etkileşim kurarken kullanıcının bir 0>Class.PluginGui0> ı bırakması durumunda.

Bu etkinlik ve PluginDragDropped bir "Drop Here" UI'ini PluginGuis'te gizlemek için yararlıdır. Bu bir UI, PluginDragEntered ile yan yana yayınlandığında gösterilmelidir.

Ayrıca bakınız:

Parametreler

dragData: Dictionary

Verilerin orijinal olarak Plugin:StartDrag() 'a kopyalanması.


Kod Örnekleri

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragMoved

Eklenti Güvenliği

PluginDragMoved çıktığında kullanıcının mouse'u bir PluginGui içinde kaydırma işleminin başladığında ateş edilir.

Ayrıca bakınız:

Parametreler

dragData: Dictionary

WindowFocusReleased

Eklenti Güvenliği

WindowFocusRelease PluginGui'nin penceresine etkileşim kesildiğinde derhal ateşlenir, genellikle pencerenin dışında bir şeye tıklayarak. Bu, UserInputService.WindowFocusReleased adlı eşdeğer adlandırılmış bir etkinliğe çalışır.

Eğer kullanıcının bu PluginGui'yi kullanırken odaklanıyorsa, PluginGui içindeki kullanıcı sayısını artırır ve bu olay, WindowFocused etkinliğinden önce ortak olayı başlatır. Ancak, ana oyun penceresi odaklan


Kod Örnekleri

Detecting PluginGui Focus State

local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)

WindowFocused

Eklenti Güvenliği

WindowFocused PluginGui'nin penceresine etkileşim başlatıldığında derhal ateşlenir, genellikle etkileşim başlatıldığında. Bu, aynı şekilde adlandırılan UserInputService.WindowFocused etkinliğiyle aynı işlevi görür. Bu, fare düğmeleriyle ilgili herhangi bir Class.GuiObject.

Başka bir PluginGui ın odak içinde ve kullanıcı bu PluginGui'yı odaklandıysa, bu etkinlik kullanıcının WindowFocusReleased etkinliğinden sonra başlar. Ancak, ana oyun penceresi odaklandıysa, bu etkinlik başladı


Kod Örnekleri

Detecting PluginGui Focus State

local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)