StudioService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
StudioService Memberikan akses ke konfigurasi Roblox Studio, memungkinkan impor file dari sistem file pengguna, dan informasi lainnya. Ini dimaksudkan untuk digunakan oleh Plugins untuk memberikan pengalaman pengguna yang konsisten.
- Plugin yang memungkinkan pengguna untuk menggerakkan objek dapat menemukan GridSize , RotateIncrement dan UseLocalSpace yang berguna.
- Plugin yang memerlukan pengguna untuk mengimpor file harus menggunakan PromptImportFile atau PromptImportFiles untuk menerima objek File.
- Plugin yang menunjukkan ikon kelas Instans dapat menggunakan GetClassIcon .
- Plugin yang peduli tentang mana script yang saat ini sedang di편집 (jika ada) dapat membaca ini dari ActiveScript .
Rangkuman
Properti
Mengambil LuaSourceContainer saat ini (jika ada).
Mengukur jarak dalam studs oleh mana alat seret dan geser Studio pindahkan objek setiap tik.
Menentukan derajat di mana alat rotasi Studio akan berputar objek yang dipilih setiap tik.
Lokasi saat ini yang digunakan oleh Studio, misalnya en_US.
Mengukur apakah alat Studio akan menggunakan ruang lokal objek atau ruang global.
Metode
Menyediakan kamus yang memungkinkan tampilan ikonExplorer kelas.
Mengembalikan ID pengguna Studio jika mereka terdaftar, jika tidak mengembalikan 0.
Menginstruksikan pengguna Studio saat ini untuk memilih satu file untuk ditambahkan sebagai File .
Mendesak pengguna Studio saat ini untuk memilih file untuk ditambahkan sebagai Files .
Properti
ActiveScript
ActiveScript mengacu pada LuaSourceContainer saat ini yang sedang di편집 oleh pengguna. Jika pengguna tidak mengedit script, ini akan menjadi nil . Di bawah ini adalah contoh yang menunjukkan cara Anda dapat menggunakan property ini untuk menghitung seberapa lama script aktif.
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
GridSize
GridSize menentukan jarak dalam studs di mana alat seret dan pindah Studio bergerak objek setiap tik. Ini ditetapkan di tab Model pengguna di bawah bagian Snap to Grid .
RotateIncrement
RotateIncrement menentukan sudut dalam derajat di mana alat rotasi Studio akan memutar objek yang dipilih setiap tik. Ini ditetapkan di tab Model pengguna di bawah bagian Snap to Grid .
Secrets
ShowConstraintDetails
ShowWeldDetails
StudioLocaleId
Properti StudioLocalId berisi lokasi saat ini yang digunakan oleh Studio, misalnya en_US. Ini berguna ketika lokasi plugin.
Di bawah ini adalah contoh tutorial lokal yang didasarkan pada nilai yang dikembalikan oleh fungsi ini.
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
Metode
GetClassIcon
GetClassIcon memberikan definisi yang mengizinkan tampilan jendela Explorer, misalnya, memanggil fungsi ini dengan "Bagian" menghasilkan nilai propperti yang menampilkan ikon jendela Explorer.
Di bawah ini adalah representasi tabeliter dari nilai yang dikembalikan ketika fungsi ini dipanggil dengan "Part" .
{Image = "rbxasset://textures/ClassImages.png",ImageRectOffset = Vector2.new(16, 0),ImageRectSize = Vector2.new(16, 16)}
Fungsi utilitas di bawah ini mungkin berguna saat menampilkan ikon kelas:
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 -- Tetapkan proporsi
end
end
displayClassIcon(imageLabel, "Part")
Parameter
Memberikan nilai
GetUserId
Mengembalikan ID pengguna Studio jika mereka terdaftar, jika tidak mengembalikan 0.
Memberikan nilai
Contoh Kode
-- 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
Parameter
Memberikan nilai
PromptImportFile
Fungsi ini meminta pengguna Studio saat ini untuk memilih satu file, yang kemudian akan dimuat sebagai File .
Lihat juga:
- StudioService:PromptImportFiles() , fungsi yang sama tetapi untuk memuat daftar file bukan hanya satu file
Parameter
Daftar jenis file yang diizinkan pengguna untuk dipilih. File jenis file dibentuk tanpa tanda. Misalnya, "jpg", "png" hanya memungkinkan file JPG atau PNG untuk dipilih. Jika tidak ada filter yang disediakan, filter adalah nol dan memungkinkan pengguna untuk memilih ketikfile apa pun.
Memberikan nilai
Class.File yang diimpor. Memberikan nol jika tidak ada file yang dipilih, atau jika file yang dipilih terlalu besar (FileSize lebih dari 100 MB).
PromptImportFiles
Fungsi ini meminta pengguna Studio saat ini untuk memilih satu atau lebih file, yang kemudian akan dimuat sebagai Files .
Mengembalikan kesalahan jika fileTypeFilter adalah daftar kosong.
Lihat juga:
- StudioService:PromptImportFile() , fungsi yang sama tetapi untuk memuat satu file saja bukan daftar file
Parameter
Daftar jenis file yang diizinkan pengguna untuk dipilih. File jenis file dibentuk tanpa tanda. Misalnya, "jpg", "png" hanya memungkinkan file jenis JPG dan PNG untuk dipilih. Jika tidak ada filter yang disediakan, filter adalah nol dan memungkinkan pengguna untuk memilih ketikfile apa pun.
Memberikan nilai
Class.File|Files yang diimpor. Mengembalikan daftar kosong jika tidak ada file yang dipilih. Mengembalikan nol jika pengguna memilih satu atau lebih file yang terlalu besar (FileSize lebih dari 100 MB).