DragDetector

Tampilkan yang Tidak Digunakan Lagi

*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

Properti diwarisi dari ClickDetector

Metode

Acara

Acara diwarisi dari ClickDetector

Properti

ActivatedCursorIcon

ContentId
Baca Paralel

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

Baca Paralel

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.

Tidak Direplikasi
Baca Paralel

Aksen utama gerakan, diungkapkan relatif terhadap referensi frame. Untuk DragStyle dari Enum.DragDetectorDragStyle.TranslateLine ,

DragFrame

Baca Paralel

Jika ReferenceInstance atur, CFrame pivot relatif terhadap referensi; jika tidak, CFrame pivot relatif terhadap frame pada awal drag.

Baca Paralel

Paradigma yang digunakan untuk menghasilkan gerakan yang diusulkan, diberikan aliran cursor. Lihat Enum.DragDetectorDragStyle untuk opsi.

Enabled

Baca Paralel

Jika benar, DragDetector menanggapi masukan pengguna; jika benar, itu tidak.

GamepadModeSwitchKeyCode

Baca Paralel

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

Baca Paralel

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

Baca Paralel

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

Baca Paralel

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

Baca Paralel

Kekuatan maksimum diterapkan untuk objek untuk mencapai tujuan. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tertaut tidak ditempatkan.

MaxTorque

Baca Paralel

Torsi maksimum diterapkan untuk objek untuk mencapai tujuan. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tuan rumah tidak bersarat.

MinDragAngle

Baca Paralel

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

Baca Paralel

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

Baca Paralel

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

Baca Paralel

Mengontrol tingkat izin di mana pemain dapat berinteraksi dengan DragDetector . Standar adalah Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

Baca Paralel

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

Baca Paralel

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

Baca Paralel

Nilai yang lebih tinggi menyebabkan objek mencapai tujuan lebih cepat. Hanya relevan jika ResponseStyle adalah Enum.DragDetectorResponseStyle.Physical dan objek tertaut tidak bertaruh.

RunLocally

Baca Paralel

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

Tidak Direplikasi
Baca Paralel

Lokasi sekunder gerakan. Berhubungan dengan orientasi menggunakan paradigma yang sama dengan Attachments .

TrackballRadialPullFactor

Baca Paralel

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

Baca Paralel

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

Baca Paralel

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

Tidak Direplikasi
Baca Paralel

The Axis expressed dalam ruang dunia. Berhubungan dengan orientasi menggunakan paradigma yang sama seperti Attachments .

WorldSecondaryAxis

Tidak Direplikasi
Baca Paralel

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

priority: number

Urutan prioritas untuk fungsi yang ditambahkan melalui metode ini.Nilai yang lebih tinggi mengambil prioritas atas nilai yang lebih rendah.

function: function

Fungsi untuk mengubah atau membatasi gerakan yang diusulkan. Fungsi ini mengambil input CFrame dari gerakan yang diusulkan dan menghasilkan CFrame dari 1>gerakan yang dimodifikasi1> atau tidak dimodifikasi. Kedua fungsi ini relatif terhadap referensi frame.


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

Referensi CFrame dalam mana gerakan diungkapkan.

RestartDrag

void

Dapat diaktifkan dari script untuk restart drag menggunakan parameter baru, jika parameter seperti DragStyle , Axis , atau SecondaryAxis berubah.


Memberikan nilai

void

SetDragStyleFunction

void

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

function: function

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

void

SetPermissionPolicyFunction

void

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

function: function

Fungsi untuk menetapkan interaktivitas detector. Fungsi ini menerima parameter Player untuk mengaktifkan / menonaktifkan


Memberikan nilai

void

Acara

DragContinue

Berapi-api saat pengguna terus menyeret objek setelah DragStart telah diaktifkan.

Parameter

playerWhoDragged: Player

Class.Player yang menginisialisasi seretan melalui DragStart dan sekarang melanjutkan seretan.

cursorRay: Ray

Ray bersinar dari cursor, bertujuan ke adegan.

viewFrame: CFrame

CFrame dari Camera pengguna.

vrInputFrame: OptionalCoordinateFrame

Jika menggunakan perangkat masukan VR, CFrame tangan yang memegang cursor/porter/ controller.

isModeSwitchKeyDown: bool

Jika detektor tarikan memiliki kedua mode gerakan utama dan sekunder, parameter ini menunjukkan apakah pengguna menggeser input modifier yang ditentukan melalui DragStyle , Class.DragDetector.GamepadModeSwitch


DragEnd

Menembak ketika seorang pengguna berhenti menyeret objek.

Parameter

playerWhoDragged: Player

Class.Player yang menginisialisasi seretan melalui DragStart dan sekarang telah mengakhiri seretan.


DragStart

Mengaktifkan ketika seorang pengguna mulai menyeret objek.

Parameter

playerWhoDragged: Player

Player yang menginisialisasi seretan.

cursorRay: Ray

Ray bersinar dari cursor, bertujuan ke adegan.

viewFrame: CFrame

CFrame dari Camera pengguna.

hitFrame: CFrame

Petunjuk hit dari cursor raycast yang menginisialisasi拖.

clickedPart: BasePart

Bagian yang dihantam oleh raycast cursor yang memulai drag.

vrInputFrame: OptionalCoordinateFrame

Jika menggunakan perangkat masukan VR, CFrame tangan yang memegang cursor/porter/ controller.

isModeSwitchKeyDown: bool

Jika detektor tarikan memiliki kedua mode gerakan utama dan sekunder, parameter ini menunjukkan apakah pengguna menggeser input modifier yang ditentukan melalui DragStyle , Class.DragDetector.GamepadModeSwitch