PluginGui
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
PluginGui は、Roblox Studioのウィジェットに表示される GuiObjects を多くの場合にサポートする抽象クラスです。現在、唯一のプラグインGUIタイプは DockWidgetPluginGui ですが、将来には多くのプラグインギターが追加される可能性があります!
概要
プロパティ
Class.PluginGui のコンテンツの上に表示されるタイトル。
この LayerCollector の透明度を切り替えます。
プレイヤーのキャラクターがリスポーンするたびに LayerCollector がリセットされるかどうかを決定します。
この GuiObject.ZIndex のすべての子孫で LayerCollector がどのように動作するかを制御します。
UI 要素の実際の画面位置をピクセルで説明します。
UI 要素の実際のスクリーン回転を、度数で説明します。
UI 要素の実際の画面サイズをピクセル単位で説明します。
設定を「真」に設定すると、ローカライズはこの GuiBase2d とその子孫に適用されます。
この GuiBase2d とその後の子孫に自動的にローカライズを適用するために使用される LocalizationTable の参照。
下向きにゲームパッドの選択動作をカスタマイズします。
左側のゲームパッド選択動作をカスタマイズします。
右方向のゲームパッド選択動作をカスタマイズします。
ゲームパッドの選択動作を上向きにカスタマイズします。
ゲームパッドの選択動作をカスタマイズできます。
方法
関数を PluginGui の閉じるボタンにバインドし、デフォルトの動作をオーバーライドします。
プラグインGUI の位置を返します。
イベント
ユーザーが Class.Plugin:StartDrag() を開始したドラッグオペレーション中にマウスをリリースすると、発動します。
ユーザーのマウスが Class.Plugin:StartDrag() を開始したドラッグオペレーション中にプラグインギュイを入力すると、ファイアーです。
ユーザーのマウスが Class.Plugin:StartDrag() を開始したドラッグ操作の間にプラグインGUIを終了すると、ファイアが発動します。
ユーザーのマウスが Plugin:StartDrag() のドラッグオペレーションの開始中にプラグインGUI 内に移動すると、ファイアを起動します。
プラグインギュイのウィンドウとのユーザーのインタラクションを停止すると、ファイアを起動します。
ユーザーが PluginGui のウィンドウとインタラクトし始めると、ファイアが発生します。
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
ゲームパッドの選択が移動すると、退出します。または、接続された GuiBase2d または任意の子 GuiObjects 内で変更されます。
プロパティ
方法
BindToClose
この関数は、PluginGui ボタンを閉じるについて関数をバインドし、デフォルトの動作をオーバーライドします。
デフォルトでは、ユーザーが PluginGui の右上隅にある 'x' ボタンをクリックすると、 Enabled プロパティが false に設定され、ウィンドウを閉じます。ユーザーがカスタム関数を使用してバインドすると
デフォルトの閉鎖動作がこの関数によって上書きされるため、PluginGui を手動で閉鎖するには、PluginGui.Enabled を Class.PluginGui に設定して、2> Class.PluginGui をクリックする必要があります。たとえ、次のスナップショットでユーザーは G
local closing = false
pluginGui:BindToClose(function()
-- ボタンを作成していないことを確認してください
if closing then
return
end
closing = true
-- ボタンを作成して確認
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
-- クリックをリスニング
confirmButton.Activated:Connect(function()
-- guiを閉じる
pluginGui.Enabled = false
-- 確認ボタンを削除
confirmButton:Destroy()
end)
end)
BindToClose を「unbind」するだけで、上で説明したデフォルトの動作に戻ります。たとえば:
pluginGui:BindToClose()
参照してください:
- Plugin:CreateDockWidgetPluginGui() を作成して、PluginGui を作成
- DataModel:BindToClose() 、ゲーム終了に関数をバインドするために使用できますが、この関数とは間違えないでください
パラメータ
閉じるボタンにバインドする関数を。 関数が指定されていない場合は、以前に指定された関数はバインドされなくなります。
戻り値
GetRelativeMousePosition
GetRelativeMousePosition は、PluginGui の左上隅にあるマウスの位置を返します。返された値は、プラグインギュイでマウスの入力が開始された場合、またはマウスが現在ウィンドウの上にある場合にのみ変更されます。
戻り値
マウスの位置がプラグインGUI のピクセルに対して相対的に移動する。
コードサンプル
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()
イベント
PluginDragDropped
プラグインドラッグドロップド は、PluginGui のドラッグオペレーションを開始したときに発動します Plugin:StartDrag() の間のユーザーのマウスを 0> Class.PluginGui0> に置くと、 3> プラグインドラッグドロップド 3> を起動します。
参照してください:
パラメータ
コードサンプル
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
ユーザーのマウスが Class.PluginGui の Class.PluginGui に入ると、 Class.Plugin:StartDrag() のドラッグオペレーションを開始するときに発動します。
このイベントは、「ドラッグ操作」がドロップできるプラグインGUIで「ドロップハード」UIを表示するのに便利です。この UI は、PluginDragLeft またはPluginDragDropped のファイアー時に隠される必要があります。
参照してください:
パラメータ
データのオリジナルのコピーが Plugin:StartDrag() にあります。
コードサンプル
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
PluginDragLeft は、PluginGui のマウスが開始したドラッグ操作の間に Plugin:StartDrag() で終了すると発動します。
このイベントと PluginDragDropped は、ドラッグオペレーションをドロップできるプラグインGUIで「ドロップアイテム」UIを非表示にするのに便利です。このGUIは、PluginDragEntered が発動すると表示されます。
参照してください:
パラメータ
データのオリジナルのコピーが Plugin:StartDrag() にあります。
コードサンプル
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
PluginDragMoved は、PluginGui のドラッグオペレーションの開始中にユーザーのマウスが Plugin:StartDrag() 内に移動すると発動します。
参照してください:
パラメータ
WindowFocusReleased
WindowFocusRelease は、ユーザーが PluginGui のウィンドウとの交流を停止すると即座に発動し、通常はクリックしてウィンドウ外のものをクリックするなどしています。これは、同様に名前のついた UserInputService.WindowFocusReleased イベントにも機能します。
ユーザーがこのプラグインギュイをフォーカスしている間に、PluginGui にフォーカスしたプラグインギュイを移動すると、このイベントは、WindowFocused の他のユーザーのイベント前に発動します。ただし、メインゲームウィ
コードサンプル
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
WindowFocused は、ユーザーがプラグインGUIのウィンドウとインタラクトし始めると、すぐに発動します。これは、一般的に UserInputService.WindowFocused という名前のイベントと同様の機能を持ちます。これは、マウスボタンに関連する GuiObject.InputBegan イベントに
Class.PluginGui がフォーカスされており、ユーザーがこのプラグインギュイをフォーカスすると、このイベントは、WindowFocusReleased の他のユーザーのイベント後に発動します。ただし、メインゲームウィンドウがフォーカスされていた
コードサンプル
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)