DragDetector
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Instansi DragDetector memudahkan dan meningkatkan interaksi dengan objek 3D dalam pengalaman, seperti membuka pintu dan Drawers, menyesuaikan bagian sekitar, dan banyak lagi. Fitur kunci termasuk:
Tempatkan DragDetector di bawah salah satu BasePart atau Model untuk membuatnya dapat di拖动 melalui semua input (mouse, Touch, Gamepad, dan VR), semua tanpa satu baris kode.
Pilih dari beberapa pilihan DragStyle, definisikan cara objek merespon gerakan melalui ResponseStyle , dan opsiional menerapkan batas sumbu atau gerakan.
Skrip dapat merespon manipulasi objek yang ditarik untuk mengemudi UI atau membuat keputusan logik, seperti menyesuaikan tingkat cahaya di ruangan berdasarkan pintu pintu roda cahaya.
Pemain dapat menipu bagian atau model yang terancam dan mereka akan tetap persis di mana Anda menempatkannya setelah rilis.
Class.DragDetector|DragDetectors bekerja di Studio as long as you're tidak menggunakan alat Pilih , 0> Pindahkan 0>, 3> Skala 3>, atau DragDetectors6> alat, membuat lebih mudah untuk menguji dan menyesuaikan objek yang dapat diseret saat mengedit.
Lihat panduan Detektor 3D Drag untuk detail dan contoh penggunaan.
Rangkuman
Properti
Tetapkan ikon kurungan untuk ditampilkan saat mouse diaktifkan di atas mouse ini DragDetector .
Apakah batasan kekuatan diterapkan pada pusat massa objek.
Aksi utama gerakan, diungkapkan relatif terhadap referensi frame.
Datatype.CFrame pivot, tergantung pada detektor seret, ReferenceInstance .
Paradigma yang digunakan untuk menghasilkan gerakan yang diusulkan.
Apakah DragDetector menanggapi masukan pengguna.
Selama masukan gamepad, modifier Enum.KeyCode untuk mode gerakan sekunder.
Selama masukan keyboard, modifier Enum.KeyCode untuk mode gerakan sekunder.
Bersama dengan MinDragAngle, mencegah upaya detektor drag untuk menghasilkan gerakan.
Bersama dengan MinDragTranslation, mencegah upaya detektor drag untuk menghasilkan gerakan.
Kekuatan maksimum diterapkan untuk objek untuk mencapai tujuan.
Torsi maksimum diterapkan untuk objek untuk mencapai tujuan.
Bersama dengan MaxDragAngle, mencegah upaya detektor drag untuk menghasilkan gerakan.
Bersama dengan MaxDragTranslation, mencegah upaya detektor drag untuk menghasilkan gerakan.
Meng指定 YXZ rotasi sumbu-sumbu relatif terhadap referensi frame.
Mengontrol tingkat izin di mana pemain dapat berinteraksi dengan DragDetector .
Sebuah instansi cuplikan yang CFrame adalah referensi frame untuk detektor seret.
Paradigma yang digunakan untuk menggerakkan, atau tidak menggerakkan, objek yang terpengaruh oleh detektor seret.
Nilai yang lebih tinggi menyebabkan objek mencapai tujuan lebih cepat.
Apakah masukan pengguna di replikasi DragDetector server atau tetap lokal ke klien spesifik.
Sumbu sekunder gerakan.
Jika DragStyle adalah Enum.DragDetectorDragStyle.RotateTrackball , pengganda untuk menambahkan rotasi tarikan radial sebagai kontribusi untuk total.
Jika DragStyle adalah Enum.DragDetectorDragStyle.RotateTrackball , pengganda untuk menambahkan rotasi gulir ke total.
Selama masukan VR, modifier Enum.KeyCode untuk mode gerakan sekunder.
Axis yang diungkapkan dalam ruang dunia.
SecondaryAxis yang diungkapkan dalam ruang dunia.
Tetapkan ikon kurungan untuk ditampilkan saat mouse ditunjuk ke atas orang tua ini ClickDetector atau DragDetector .
Jarak maksimum antara karakter dan ClickDetector atau DragDetector bagi pemain untuk dapat berinteraksi dengannya.
Metode
Menambahkan fungsi untuk mengubah atau membatasi gerakan yang diusulkan.
Mengembalikan referensi CFrame dalam gerakan yang diungkapkan.
Dapat diaktifkan dari script untuk memulai ulang拖 menggunakan parameter baru.
Mengembalikan fungsi yang akan digunakan jika dan hanya jika DragStyle ditetapkan ke Enum.DragDetectorDragStyle.Scriptable .
Mengembalikan fungsi yang akan digunakan jika dan hanya jika PermissionPolicy ditetapkan ke Enum.DragDetectorPermissionPolicy.Scriptable.
Acara
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
Berapi-api saat pengguna terus menyeret objek setelah DragStart telah diaktifkan.
Menembak ketika seorang pengguna berhenti menyeret objek.
Mengaktifkan ketika seorang pengguna mulai menyeret objek.
Berdokasi saat seorang pemain berinteraksi dengan orang tua Class.ClickDetector atau Class.DragDetector .
Mengaktifkan ketika orang tua dari ClickDetector atau DragDetector diletakkan di atas oleh pemain.
Mengaktifkan ketika kurсоir pemain meninggalkan orang tua dari ClickDetector atau DragDetector .
Dibakar saat pemain mengklik kanan mouse mereka di ClickDetector atau DragDetector .
Properti
ActivatedCursorIcon
Tetapkan ikon kurungan untuk ditampilkan saat mouse diaktifkan di atas parent dari DragDetector ini. Jika elemen ini ditinggalkan kosong, detektor akan menggunakan ikon default.
Untuk mengubah ikon kurungan yang aktif, atur property ini ke ID aset gambar yang ingin Anda gunakan.
ApplyAtCenterOfMass
Ketika false (默认), force menghasilkan ketika pengguna mengklik. Ketika benar, force diterapkan di pusat massa objek. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tuan rumah tidak bertaruh.
Axis
Aksen utama gerakan, diungkapkan relatif terhadap referensi frame. Untuk DragStyle dari Enum.DragDetectorDragStyle.TranslateLine ,
DragFrame
Jika ReferenceInstance atur, CFrame pivot relatif terhadap referensi; jika tidak, CFrame pivot relatif terhadap frame pada awal drag.
DragStyle
Paradigma yang digunakan untuk menghasilkan gerakan yang diusulkan, diberikan aliran cursor. Lihat Enum.DragDetectorDragStyle untuk opsi.
GamepadModeSwitchKeyCode
Selama masukan gamepad, Enum.KeyCode untuk menyalakan mode gerakan sekunder. Berlaku hanya jika detektor geser utama dan sekunder memiliki kedua mode gerakan utama dan sekunder.
KeyboardModeSwitchKeyCode
Selama masukan keyboard, Enum.KeyCode untuk menyalakan mode gerakan sekunder. Berlaku hanya jika detektor geser utama dan sekunder memiliki kedua mode gerakan utama dan sekunder.
MaxDragAngle
Jika ini lebih besar dari MinDragAngle, terjemahan akan dibungkukkan dalam rentang itu.
Ini bukan kendala; itu hanya mengganggu upaya detektor drag untuk menghasilkan gerakan agar tetap dalam batas. Lihat AddConstraintFunction() untuk menambahkan kendala khusus ke drag.
Hanya relevan jika DragStyle adalah Enum.DragDetectorDragStyle.RotateAxis .
MaxDragTranslation
Di setiap dimensi, jika ini lebih besar dari MinDragTranslation, terjemahan akan dibungkukkan dalam rentang itu.
Ini bukan kendala; itu hanya mengganggu upaya detektor drag untuk menghasilkan gerakan agar tetap dalam batas. Lihat AddConstraintFunction() untuk menambahkan kendala khusus ke drag.
MaxForce
Kekuatan maksimum diterapkan untuk objek untuk mencapai tujuan. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tertaut tidak ditempatkan.
MaxTorque
Torsi maksimum diterapkan untuk objek untuk mencapai tujuan. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tuan rumah tidak bersarat.
MinDragAngle
Jika ini kurang dari MaxDragAngle , terjemahan akan dibungkukkan dalam rentang itu.
Ini bukan kendala; itu hanya mengganggu upaya detektor drag untuk menghasilkan gerakan agar tetap dalam batas. Lihat AddConstraintFunction() untuk menambahkan kendala khusus ke drag.
Hanya relevan jika DragStyle adalah Enum.DragDetectorDragStyle.RotateAxis .
MinDragTranslation
Di setiap dimensi, jika ini kurang dari MaxDragTranslation, terjemahan akan dibungkukkan dalam rentang itu.
Ini bukan kendala; itu hanya mengganggu upaya detektor drag untuk menghasilkan gerakan agar tetap dalam batas. Lihat AddConstraintFunction() untuk menambahkan kendala khusus ke drag.
Orientation
Spesifikasi rotasi YXZ dari sumbu gerakan relatif terhadap referensi frame (tidak mengubah orientasi referensi frame itu sendiri). Translasi lini dan rotasi sumbu akan berada di sumbu Y ini, dan rotasi sumbu di XZ pesawat. Mengubah nilai ini secara otomatis menghubungkan 1> Class
PermissionPolicy
Mengontrol tingkat izin di mana pemain dapat berinteraksi dengan DragDetector . Standar adalah Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
Sebuah instansi cuplikan yang CFrame adalah referensi frame untuk detektor拖. The DragFrame diungkapkan relatif terhadap CFrame ini yang dapat diambil melalui metode 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1> .
Jika instance ini adalah PVInstance, referensi frame akan menjadi pivotnya; jika Attachment , maka dunia CFrame nya. Jika itu adalah 1> nil1> atau tidak satu pun d
ResponseStyle
Setelah gerakan yang diusulkan telah dihitung dan potensial dibatasi, ini adalah paradigma yang digunakan untuk bergerak, atau tidak bergerak, objek yang terpengaruh oleh DragDetector . Lihat Enum.DragDetectorResponseStyle untuk opsi.
Responsiveness
Nilai yang lebih tinggi menyebabkan objek mencapai tujuan lebih cepat. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tertaut tidak bertaruh.
RunLocally
Jika false (default), klien mengirim sinyal replikasi ( DragStart , DragContinue , DragEnd ) ke server yang memproses cursor rays, membuat perubahan pada model data, dan mengirimnya ke klien.
Jika benar, klien memproses sinyal tersebut sendiri dan tidak mengirimkannya ke server. Klien LocalScripts mungkin digunakan untuk menanggapi acara ini dan RemoteEvents mungkin digunakan untuk mengirim perubahan yang dihasilkan yang harus dikirim ke server.
SecondaryAxis
Lokasi sekunder gerakan. Berhubungan dengan orientasi menggunakan paradigma yang sama dengan Attachments .
TrackballRadialPullFactor
Ketika cursor berada di luar trackball, DragDetector dapat menerapkan rotasi penggeseran radial yang mengubah bola seolah-olah mencoba untuk mundur ke arah cursor. Elemen ini adalah pengganda 0 hingga 1 untuk menambahkan rotasi tersebut sebagai kontribusi total. Hanya relevan jika
TrackballRollFactor
Ketika cursor berada di luar trackball, DragDetector dapat menerapkan rotasi gulir yang mengubah bola seolah-olah itu dipasang di rekaman vinyl yang menghadap pengunjung. Elemen ini adalah pengganda 0-1 untuk menambahkan rotasi gulir itu ke total. Hanya relevan jika
VRSwitchKeyCode
Selama masukan VR, Enum.KeyCode untuk menyalakan mode gerakan sekunder. Berlaku hanya jika detektor geser utama dan sekunder memiliki kedua mode gerakan utama dan sekunder.
WorldAxis
The Axis expressed dalam ruang dunia. Berhubungan dengan orientasi menggunakan paradigma yang sama seperti Attachments .
WorldSecondaryAxis
The SecondaryAxis expressed dalam ruang dunia. Berhubungan dengan orientasi menggunakan paradigma yang sama dengan Attachments .
Metode
AddConstraintFunction
Menambahkan fungsi untuk mengubah atau membatasi gerakan yang diusulkan. Fungsi mengambil input CFrame dari gerakan yang diusulkan dan mengembalikan CFrame dari 1>gerakan yang dimodifikasi1> atau
Untuk menghapus fungsi batasan yang ditambahkan, panggil Disconnect() pada objek koneksi yang dikembalikan.
Parameter
Urutan prioritas untuk fungsi yang ditambahkan melalui metode ini.Nilai yang lebih tinggi mengambil prioritas atas nilai yang lebih rendah.
Memberikan nilai
Gunakan objek koneksi ini untuk menghapus fungsi batasan.
GetReferenceFrame
Mengembalikan referensi CFrame dalam gerakan yang diungkapkan; lihat ReferenceInstance property untuk lebih banyak rincian.
Memberikan nilai
RestartDrag
Dapat diaktifkan dari script untuk restart drag menggunakan parameter baru, jika parameter seperti DragStyle , Axis , atau SecondaryAxis berubah.
Memberikan nilai
SetDragStyleFunction
Mengembalikan fungsi yang akan digunakan jika dan hanya jika DragStyle ditetapkan ke Enum.DragDetectorDragStyle.Scriptable . Fungsi yang diberikan diangg
Jika fungsi mengembalikan nil, objek tidak akan di移动. Ini berguna jika script belum mengumpulkan semua informasi yang dibutuhkan untuk memberikan jawaban yang benar, atau dalam kasus sementara di mana Anda ingin objek tetap di mana itu berada.
Parameter
Fungsi untuk mengawasi sinyal DragContinue . Fungsi ini menerima cursor ruang dunia sinyal dan mengembalikan CFrame yang berisi lokasi dan orientasi pivot di ruang dunia. Jika fungsi ini mengembalikan nil, objek tidak akan di移动.
Memberikan nilai
SetPermissionPolicyFunction
local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)
Parameter
Memberikan nilai
Acara
DragContinue
Berapi-api saat pengguna terus menyeret objek setelah DragStart telah diaktifkan.
Parameter
Class.Player yang menginisialisasi seretan melalui DragStart dan sekarang melanjutkan seretan.
Jika menggunakan perangkat masukan VR, CFrame tangan yang memegang cursor/porter/ controller.
DragEnd
Menembak ketika seorang pengguna berhenti menyeret objek.
Parameter
DragStart
Mengaktifkan ketika seorang pengguna mulai menyeret objek.
Parameter
Petunjuk hit dari cursor raycast yang menginisialisasi拖.
Bagian yang dihantam oleh raycast cursor yang memulai drag.
Jika menggunakan perangkat masukan VR, CFrame tangan yang memegang cursor/porter/ controller.