DragDetector
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
The DragDetector örneği, kapıları ve düzgünleri açmak, bir parçayı kaydırmak ve çok daha fazlası gibi deneyimde 3B nesnelerle etkileşimi kolaylaştırır ve teşvik eder.Önemli özellikler şunları içerir:
Tüm girişler (fare, dokunma, oyun konsolu ve VR) üzerinden sürüklenebilir hale getirmek için herhangi bir veya altına bir yerleştirin, tek bir kod satırı olmadan.
Birkaç seçeneği arasından seçim yapın, nesnenin harekete nasıl yanıt verdiğini tanımlayın ve isteğe bağlı olarak eksen veya hareket sınırları uygulayın.
Scriptler, kaydırılan nesnelerin manipülasyonuna yanıt vererek UI'yi sürebilir veya bir odaya göre kaydırma duvar anahtarı dimerine dayalı olarak ışık seviyesini ayarlayarak mantıksal kararlar verebilir.
Oyuncular sabitlenmiş parçaları veya modelleri manipüle edebilir ve serbest bırakırken koyduğunuz yerde kalacaklar.
DragDetectors çalışma, kullanmıyorsanız Seç , Hareket , Ölçek veya Döndür araçlarını kullanarak, düzenlerken sürüklenebilir nesneleri test etmenizi ve ayarlamanızı kolaylaştırarak daha kolay test edilmesini sağlar.
Detaylar ve kullanım örnekleri için 3B Sürükleme Dedektörleri rehberine bakın.
Özet
Özellikler
Fare bu DragDetector 'in ebeveyni üzerinde etkinleştirildiğinde görüntülenmesi için mouse ikonunu ayarlar.
Kısıtlayıcı kuvvetin nesnenin kütle merkezine uygulanıp uygulanmadığı.
Referans çerçevesine göre ifade edilen hareket ekseninin birincil eksen.
Pivotun CFrame 'si, sürükleyici dedektörün ReferenceInstance 'sına bağlı olarak.
Önerilen hareket üretmek için kullanılan paradigma.
DragDetector 'nin kullanıcı girişine yanıt verip vermediği.
Oyun kolu girişi sırasında, hareketin ikincil modu için değiştirici Enum.KeyCode .
Klavye girişi sırasında, hareketin ikincil modu için değiştirici Enum.KeyCode .
MinDragAngle ile birlikte, hareket oluşturma girişimlerini engeller hareket dedektörünün.
MinDragTranslation ile birlikte, hareket oluşturma girişimlerini engeller hareket dedektörünün.
Nesneye ulaşması için uygulanan maksimum güç.
Hedefine ulaşmak için nesne için uygulanan maksimum tork.
MaxDragAngle ile birlikte, hareket oluşturma girişimlerini engeller hareket dedektörünün.
MaxDragTranslation ile birlikte, hareket oluşturma girişimlerini engeller hareket dedektörünün.
Referans çerçevesiyle ilgili hareket eksenlerinin YXZ dönüşünü belirtir
Oyuncuların DragDetector ile etkileşebileceği izin seviyesini kontrol eder.
CFrame referans çerçevesi sürükleme dedektörü için olan bir örnek. Bir örnek whose referans çerçevesi sürükleme dedektörü için.
Sürükleyici dedektör tarafından etkilenen nesneleri hareket ettirmek veya hareket ettirmemek için kullanılan paradigma.
Daha yüksek değerler, nesnenin hedefine daha hızlı ulaşmasını sağlar.
Kullanıcının bir DragDetector sunucuya girişi, sunucuya yeniden yazılır mı veya belirli bir istemciye yerel kalır mı
Hareketin ikincil eksen.
Eğer ise, toplama katkısı olarak radyal çekme dönüşü eklemek için çarpanı.
Eğer ise, toplama rulo dönüşü eklemek için çarpanı.
VR girişi sırasında, hareketin ikincil modu için modifiye edici Enum.KeyCode .
Dünya uzayında ifade edilen Axis .
Dünya uzayında ifade edilen SecondaryAxis .
Fare, bu ClickDetector veya DragDetector 'in ebeveyni üzerinde gezindiğinde görüntülenmesi için işaretçi simgesini ayarlar.
Bir karakter ve ClickDetector veya DragDetector oyuncunun onunla etkileşime girebilmesi için oyuncuyla arasındaki maksimum mesafe.
Yöntemler
Önerilen hareketi değiştirmek veya sınırlandırmak için bir işlev ekler.
Hareketin ifade edildiği referansı CFrame döndürür.
Yeni parametler kullanılarak sürüklemeyi yeniden başlatmak için bir senaryodan çağrılabilir.
DragStyle ayarlanırsa ve sadece Enum.DragDetectorDragStyle.Scriptable kullanılacak bir işlev geçer.
PermissionPolicy ayarlanırsa ve sadece Enum.DragDetectorPermissionPolicy.Scriptable kullanılacak bir işlev geçer.
Etkinlikler
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
Bir kullanıcı, DragStart başlatıldıktan sonra nesneyi sürüklemeyi sürdürdüğünde ateş eder.
Bir kullanıcı nesneyi sürüklemeyi bıraktığında ateş eder.
Bir kullanıcı nesneyi sürüklemeye başladığında ateş eder.
Bir oyuncu bir ClickDetector veya DragDetector 'in ebeveyniyle etkileşim kurduğunda ateş eder.
Bir oyuncu tarafından ebeveynine ClickDetector veya DragDetector dokunduğunda ateş eder.
Bir oyuncunun işaretçisi bir ClickDetector veya DragDetector 'in ebeveyninden uzaklaştığında ateş eder.
Bir oyuncu sağ tıkladığında fare imlecini bir ClickDetector veya DragDetector üzerinde açar.
Özellikler
ActivatedCursorIcon
Fare bu DragDetector 'in ebeveyni üzerinde etkinleştirildiğinde görüntülenmesi için mouse ikonunu ayarlar.Bu özellik boş bırakılırsa, dedektör varsayılan simgekullanacaktır.
Aktifleştirilmiş kursör simgesini değiştirmek için, bu özelliği kullanmak istediğiniz görüntünün varlık kimliğine ayarlayın.
ApplyAtCenterOfMass
Yanlış (Varsayılan) olduğunda, kısıtlayıcı güç, kullanıcının tıkladığı noktada uygulanır.Gerçek olduğunda, kuvvet nesnenin kütle merkezine uygulanır.Sadece eğer ve ebeveyn nesne sabit değilse önemlidir.
Axis
Referans çerçevesine göre ifade edilen hareket ekseninin birincil eksen.Bir DragStyle için Enum.DragDetectorDragStyle.TranslateLine , çevirinin yönü; Enum.DragDetectorDragStyle.TranslatePlane için, hareket uçağına normal; Enum.DragDetectorDragStyle.RotateAxis için, 1D dönüş ekseninin eksenini.Bu değeri otomatik olarak değiştirmek Orientation ve tersine günceller.
DragFrame
Eğer ReferenceInstance ayarlaedilirse, referans çerçevesiyle ilgili CFrame pivot; aksi takdirde, pivotun sürüklemenin başlangıcındaki çerçevesiyle ilgili CFrame pivotu.
DragStyle
Önerilen hareket üretmek için kullanılan paradigma, bir akış cursor ışınları verildiğinde görünür. Seçenekler için bakın Enum.DragDetectorDragStyle .
GamepadModeSwitchKeyCode
Oyun kumandası girişi sırasında, hareket modunun ikincil moduna geçiş için Enum.KeyCode .Sadece kaydırma dedektörünün DragStyle 'inin hem birincil hem de ikincil hareket moduna sahip olduğu durumlarda geçerlidir.
KeyboardModeSwitchKeyCode
Klavye girişi sırasında, hareket modunun ikincil moduna geçiş için Enum.KeyCode .Sadece kaydırma dedektörünün DragStyle 'inin hem birincil hem de ikincil hareket moduna sahip olduğu durumlarda geçerlidir.
MaxDragAngle
Bu MinDragAngle dan daha büyükse, çeviri o aralık içinde kısılacaktır.
Bu bir kısıtlama değildir; sınırlar içinde kalmak için sadece hareket üretme girişimlerini engeller.Bir sürüklemeye özel kısıt eklemek için AddConstraintFunction() bakın.
Sadece önemli if DragStyle is Enum.DragDetectorDragStyle.RotateAxis .
MaxDragTranslation
Herhangi bir boyutta, bu MinDragTranslation dan daha büyükse, çeviri o aralık içinde sıkıştırılacaktır.
Bu bir kısıtlama değildir; sınırlar içinde kalmak için sadece hareket üretme girişimlerini engeller.Bir sürüklemeye özel kısıt eklemek için AddConstraintFunction() bakın.
MaxForce
Nesneye hedefe ulaşmak için uygulanan maksimum kuvvet. Sadece önemli eğer ResponseStyle``Enum.DragDetectorResponseStyle.Physical ve ebeveyn nesne sabit değilse.
MaxTorque
Nesneye hedefe ulaşması için uygulanan maksimum tork. Sadece önemli eğer ResponseStyle``Enum.DragDetectorResponseStyle.Physical ve ebeveyn nesne sabit değilse.
MinDragAngle
Eğer bu MaxDragAngle , çeviri o aralık içinde kısılacaktır.
Bu bir kısıtlama değildir; sınırlar içinde kalmak için sadece hareket üretme girişimlerini engeller.Bir sürüklemeye özel kısıt eklemek için AddConstraintFunction() bakın.
Sadece önemli if DragStyle is Enum.DragDetectorDragStyle.RotateAxis .
MinDragTranslation
Herhangi bir boyutta, eğer bu MaxDragTranslation dan daha az ise, çeviri o aralığa sıkıştırılacaktır.
Bu bir kısıtlama değildir; sınırlar içinde kalmak için sadece hareket üretme girişimlerini engeller.Bir sürüklemeye özel kısıt eklemek için AddConstraintFunction() bakın.
Orientation
Referans çerçevesiyle ilgili hareket eksenlerinin YXZ dönüşünü belirtir (referans çerçevenin kendi yönünü değiştirmez).Lineer çevirme ve eksenel dönüş bu yeniden yönlendirilmiş Y ekseninde olacak ve XZ ekseninde plano tercümesi.Bu değeri otomatik olarak değiştirmek Axis ve tersine günceller.
PermissionPolicy
Oyuncuların DragDetector ile etkileşime girebileceği izin seviyesini kontrol eder. Varsayılan değer Enum.DragDetectorPermissionPolicy.Everybody dir.
ReferenceInstance
CFrame referans çerçevesi sürükleme dedektörü için olan bir örnek. Bir örnek whose referans çerçevesi sürükleme dedektörü için.The DragFrame bu CFrame ile ilişkilendirilir ve GetReferenceFrame() yöntemi aracılığıyla alınabilir.
Bu örnek bir PVInstance ise, referans çerçevesi onun merkezi olacaktır; eğer bir Attachment ise, dünyası da onun olacaktır CFrame .Eğer nil ya da öncekilerden hiçbiri değilse, referans çerçevesi, sürükleyici dedektörün ebeveyninin BasePart veya Model pivotuna dayanacaktır.
ResponseStyle
Önerilen hareket hesaplandıktan ve potansiyel olarak sınırlandıktan sonra, DragDetector tarafından etkilenen nesneleri hareket ettirmek veya hareket etmemek için kullanılan paradigma budur.Seçenekler için Enum.DragDetectorResponseStyle bakın.
Responsiveness
Daha yüksek değerler, nesnenin hedefine daha hızlı ulaşmasını sağlar. Sadece eğer ve ebeveyn nesne sabit değilse önemlidir.
RunLocally
Eğer yanlışsa (Varsayılan), istemci cursor ışınlarını işleyen sunucuya ( DragStart , DragContinue , DragEnd ) gönderir ve veri modeline değişiklik yapar ve bunları istemcilere yönlendirerek yeniden yapar.
Eğer doğruysa, istemci bu sinyalleri kendisi işler ve onları sunucuya yeniden yazmaz.Müşteri LocalScripts bu olaylara yanıt vermek ve RemoteEvents sunucuya yansıtılması gereken herhangi bir değişikliği göndermek için kullanılabilir.
SecondaryAxis
Hareketin ikincil eksen. Aynı paradigmayı kullanarak yönlendirme ile ilgilidir Attachments .
TrackballRadialPullFactor
Kurma işaretinin dışında olduğunda, DragDetector yuvarlak bir çekme dönüşü uygulayabilir ve top, tıpkı yuvarlanmaya çalışıyormuş gibi kurma işaretine dönüşür.Bu özellik, bu dönüşü toplama olarak eklemek için 0 ile 1 çarpanıdır.Sadece önemli if DragStyle is Enum.DragDetectorDragStyle.RotateTrackball .
TrackballRollFactor
Kurma işaretleyici pencereden dışarıda olduğunda, DragDetector topu görüntüye bakan bir vinil kayıt üzerine monte edilmiş gibi döndüren bir rulo dönüşü uygulayabilir.Bu özellik, bu rulo dönüşünü toplamaya eklemek için 0 ile 1 çarpanıdır.Sadece önemli if DragStyle is Enum.DragDetectorDragStyle.RotateTrackball .
VRSwitchKeyCode
VR girişi sırasında, ikincil hareket modunu değiştirmek için Enum.KeyCode .Sadece kaydırma dedektörünün DragStyle 'inin hem birincil hem de ikincil hareket moduna sahip olduğu durumlarda geçerlidir.
WorldAxis
Dünya uzayında ifade edilen Axis . Aynı paradigmayı kullanarak yönlendirme ile ilgilidir Attachments .
WorldSecondaryAxis
Dünya uzayında ifade edilen SecondaryAxis . Aynı paradigmayı kullanarak yönlendirme ile ilgilidir Attachments .
Yöntemler
AddConstraintFunction
Önerilen hareketi değiştirmek veya sınırlandırmak için bir işlev ekler.İşlev, önerilen hareketin bir giriş alır ve değiştirilmiş veya değiştirilmemiş hareketin bir kısmını döndürür.Hem giriş hem de çıkış, referans çerçevesiyle ilişkilendirilir.priority sırayla çağrılacak birden fazla işlev ekleyebilirsiniz, sonuçları bir zincir boyunca geçirerek.
Eklendi bir kısıtlayıcı işlevi kaldırmak için, döndürülen bağlantı nesnesine Disconnect() çağrınız.
Parametreler
Bu yöntem aracılığıyla eklenen işlevlerin öncelik sırası. Daha yüksek değerler daha düşük değerlerden önceliklidir.
Dönüşler
Kısıtlama işlevini kaldırmak için bu bağlantı nesnesini kullanın.
GetReferenceFrame
Hareketin ifade edildiği referansı CFrame döndürür; daha fazla ayrıntı için ReferenceInstance özelliğine bakın.
Dönüşler
RestartDrag
Yeni parametler kullanılarak sürüklemeyi yeniden başlatmak için bir senaryodan çağrılabilir, eğer DragStyle , Axis veya SecondaryAxis değişirse parametler.
Dönüşler
SetDragStyleFunction
DragStyle ayarlanırsa ve sadece Enum.DragDetectorDragStyle.Scriptable kullanılacak bir işlev geçer.Verdiğiniz işlev, bir DragContinue sinyaline yanıt verirken çağrılır, sinyalin dünya uzayı kurma ışınını Ray ile alır ve dünya uzayındaki pivotun istediği konum ve yönünü içeren bir CFrame döndürür.
Eğer işlev nil döndürürse, nesne taşınmayacaktır.Bu, senaryo doğru cevabı vermek için henüz tüm bilgileri toplamadıysa veya nesnenin olduğu yerde kalmasını istediğiniz geçici durumlarda yararlıdır.
Parametreler
DragContinue sinyalleri.Bu işlev, sinyalin dünya uzayı kurma ışınını alır ve dünya uzayındaki pivotun istediği konumunu ve yönünü içeren bir CFrame döndürür.Bu işlev nil dönerse, nesne taşınmayacaktır.
Dönüşler
SetPermissionPolicyFunction
PermissionPolicy ayarlanırsa ve sadece Enum.DragDetectorPermissionPolicy.Scriptable kullanılacak bir işlev geçer.Verilen işlev, belirli bir oyuncu için dedektörü etkinleştirmek/devre dışı bırakmak için bir Player parametresi kabul eder.Ayrıca, hangi özel part parçasının tıklandığını gösteren bir BasePart parametresi alır, örneğin kaydırılabilir Model içinde bir parça üzerine tıklanır; bu, o parçanın Name , Color , HasTag() değerine veya diğer detaylara dayalı olarak dedektörü etkinleştirmek/devre dışı bırakmak için kullanışlıdır.
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)
Parametreler
Dedektörün etkileşimliliğini ayarlamak için işlev.Bu işlev, belirli bir oyuncu için dedektörü etkinleştirmek/devre dışı bırakmak için bir Player parametresi kabul eder.Ayrıca, hangi özel BasePart parçasının tıklandığını gösteren bir part parametresi alır, örneğin sürüklenebilir bir Model içinde bir parça üzerine tıklanmış; bu, o parçanın Name , Color , HasTag() değerine veya diğer detaylara dayalı olarak dedektörü etkinleştirmek/devre dışı bırakmak için kullanışlıdır.
Dönüşler
Etkinlikler
DragContinue
Bir kullanıcı, DragStart başlatıldıktan sonra nesneyi sürüklemeyi sürdürdüğünde ateş eder.
Parametreler
Bir VR giriş cihazı kullanıyorsanız, el tutan kurör/işaretleyici/kontrolörün CFrame 'si.
Sürükleme dedektörünün DragStyle 'inin hem birincil hem de ikincil hareket modu varsa, bu parametre kullanıcının KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode veya VRSwitchKeyCode aracılığıyla tanımlanan modifiye girişine basıp basmadığını gösterir.
DragEnd
Bir kullanıcı nesneyi sürüklemeyi bıraktığında ateş eder.
Parametreler
DragStart
Bir kullanıcı nesneyi sürüklemeye başladığında ateş eder.
Parametreler
Sürüklemeyi başlatan cursor raycast'ın vuruş çerçevesi.
Sürüklemeyi başlatan kurör ışını tarafından vurulan parça.
Bir VR giriş cihazı kullanıyorsanız, el tutan kurör/işaretleyici/kontrolörün CFrame 'si.
Sürükleme dedektörünün DragStyle 'inin hem birincil hem de ikincil hareket modu varsa, bu parametre kullanıcının KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode veya VRSwitchKeyCode aracılığıyla tanımlanan modifiye girişine basıp basmadığını gösterir.