StudioService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
StudioService は、Roblox Studio の構成へのアクセス、ユーザーのファイルシステムからファイルのインポート、その他の雑多な情報を許可します。一貫したユーザーエクスペリエンスを提供するために、Plugins に使用することが目的です。
- インスタンスクラスのアイコンを表示するプラグインは、GetClassIcon を使用できます。
- 現在編集中のスクリプトを気にするプラグイン (ある場合) は、ActiveScript からこれを読むことができます。
概要
プロパティ
現在編集中の LuaSourceContainer を反映します (ある場合)。
Studio のドラッグと移動ツールが各タイクでオブジェクトを移動する距離をスタッドで決定します。
スタジオの回転ツールが各タイクで選択したオブジェクトを回転させる度を決定します。
Studio が現在使用しているローカル、例えば en_US 。
Studio ツールがオブジェクトのローカルスペースかグローバルスペースを使用するかを決定します。
方法
プロパティ
ActiveScript
ActiveScript は、現在ユーザーが編集中の LuaSourceContainer を指します。ユーザーがスクリプトを編集していない場合、これは nil です。以下は、このプロパティを使用してスクリプトがどれくらい長くアクティブであったかを測定できる方法を示す例です。
local StudioService = game:GetService("StudioService")
local startTime = os.time()
local activeScript
local function onActiveScriptChanged()
local newActiveScript = StudioService.ActiveScript
if activeScript and newActiveScript ~= activeScript then
local deltaTime = os.time() - startTime
print(("You edited %s for %d:%2.d"):format(activeScript.Name, deltaTime // 60, deltaTime % 60))
end
startTime = os.time()
activeScript = newActiveScript
end
StudioService:GetPropertyChangedSignal("ActiveScript"):Connect(onActiveScriptChanged)
DraggerSolveConstraints
RotateIncrement
回転増分 は、Studio の回転ツールが各タイクで選択オブジェクトを回転させる角度を度数で決定します。これは、ユーザーのツールバーの モデル タブに設定されます。
Secrets
ShowConstraintDetails
ShowWeldDetails
StudioLocaleId
StudioLocaleId プロパティには、Studio が現在使用しているローカル、例えば en_US が含まれています。プラグインをローカライズするときに便利です。
以下は、この関数が返した値に基づくローカライゼーションの単純な例です。
local locale = game:GetService("StudioService").StudioLocaleIdif locale == "en_US" thenprint("Howdy, ya'll")elseif locale == "en_GB" thenprint("'Ello, gov'na")elseif locale:sub(1, 2) == "en" thenprint("Hello")elseif locale == "fr_FR" thenprint("Bonjour")end
方法
GetClassIcon
GetClassIcon は、クラスの Explorer ウィンドウアイコンの表示を可能にする辞書を提供します、例えばこの機能を「パーツ」で呼び出すと、エクスプローラ ウィンドウからパーツアイコンを表示するプロパティ値が返されます。
以下は、この関数を "Part" で呼び出したときに返される値の文字通りのテーブル表現です。
{Image = "rbxasset://textures/ClassImages.png",ImageRectOffset = Vector2.new(16, 0),ImageRectSize = Vector2.new(16, 16)}
以下のユーティリティ関数は、クラスアイコンを表示するときに役立つかもしれません:
local StudioService = game:GetService("StudioService")
local imageLabel = script.Parent
local function displayClassIcon(image, className)
for k, v in StudioService:GetClassIcon(className) do
image[k] = v -- プロパティを設定
end
end
displayClassIcon(imageLabel, "Part")
パラメータ
戻り値
GetUserId
ログインしている場合は Studio ユーザーのユーザーIDを返し、そうでない場合は 0 を返します。
戻り値
コードサンプル
The example prints the currently logged in user's ID.
-- Can only be used in a plugin
local StudioService = game:GetService("StudioService")
local Players = game:GetService("Players")
local loggedInUserId = StudioService:GetUserId()
local loggedInUserName = Players:GetNameFromUserIdAsync(loggedInUserId)
print("Hello,", loggedInUserName)
GizmoRaycast
パラメータ
戻り値
PromptImportFile
この機能は、現在の Studio ユーザーにファイルを 1つ選択するよう促し、それは File としてロードされます。
参照してください:
- StudioService:PromptImportFiles() , 同じ機能ですが、1つのファイルではなくファイルリストをロードする
パラメータ
ユーザーが選択できるファイルタイプのリスト。ファイルタイプは期間なしで形式化されます。たとえば、「jpg」、「png」は、JPG または PNG ファイルのみを選択できます。フィルターが提供されない場合、フィルターは nil であり、ユーザーが任意のファイルタイ入力を選択できます。
戻り値
PromptImportFiles
この機能は、現在の Studio ユーザーに、Files としてロードされる 1つまたは複数のファイルを選択するよう促します。
ファイルタイプフィルタが空のリストだった場合、エラーをスローします。
参照してください:
- StudioService:PromptImportFile() , 同じ機能ですが、リストのファイルではなく、1つのファイルをロードする
パラメータ
ユーザーが選択できるファイルタイプのリスト。ファイルタイプは期間なしで形式化されます。たとえば、「jpg」、「png」は、JPG と PNG ファイルのみを選択できます。フィルターが提供されない場合、フィルターは nil であり、ユーザーが任意のファイルタイ入力を選択できます。
戻り値
インポートされた Files 。ファイルが選択されなかった場合は空のリストを返します。ユーザーが 1つまたは複数のファイルを選択した場合、ファイルサイズが 100MB 以上である場合、nil を返します。