DragDetector
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Ví dụ DragDetector instance thúc đẩy và khuyến khích tương tác với đối tượng 3D trong một trải nghiệm, chẳng hạn như mở cửa và ngăn kéo, kéo một phần xung quanh, và nhiều hơn nữa.Các tính năng chính bao gồm:
Đặt một DragDetector dưới bất kỳ BasePart hoặc Model để làm cho nó có thể kéo qua tất cả các đầu vào (chuột, cảm ứng, gamepad và VR), tất cả mà không có một dòng mã nào.
Chọn từ một số DragStyle lựa chọn, xác định cách mà đối tượng phản ứng với chuyển động thông qua ResponseStyle , và có thể áp dụng giới hạn trục hoặc chuyển động bắt buộc.
Các kịch bản có thể phản ứng với việc thao tác với các đối tượng bị kéo để lái UI hoặc đưa ra các quyết định logic, chẳng hạn như điều chỉnh mức độ sáng trong một phòng dựa trên công tắc chuyển đổi ánh sáng trượt.
Người chơi có thể thao tác các phần hoặc mô hình được neo và chúng sẽ ở lại chính xác nơi bạn đặt chúng khi phát hành.
DragDetectors làm việc trong Studio miễn là bạn không sử dụng công cụ Chọn , Di chuyển , Thước đo hoặc Xoay công cụ, làm cho nó dễ dàng hơn để kiểm tra và điều chỉnh các đối tượng có thể kéo được trong khi chỉnh sửa.
Xem hướng dẫn 3D Drag Detectors chi tiết và ví dụ sử dụng.
Tóm Tắt
Thuộc Tính
Đặt biểu tượng con trỏ để hiển thị khi chuột được kích hoạt trên cha của đối tượng này DragDetector .
Liệu có áp dụng lực hạn chế vào trung tâm khối lượng của đối tượng hay không.
Trục chính của chuyển động, được biểu hiện so với khung tham chiếu.
The CFrame of the pivot, depending on the drag detector's ReferenceInstance .
Những nguyên tắc được sử dụng để tạo ra chuyển động đề xuất.
Whether the DragDetector đáp ứng với nhập của người dùng.
Trong lúc nhập gamepad, chỉnh sửa Enum.KeyCode cho chế độ di chuyển thứ cấp.
Trong khi nhập bàn phím, chỉnh sửa Enum.KeyCode cho chế độ di chuyển thứ cấp.
Cùng với MinDragAngle, ngăn cản các nỗ lực của máy dò chuyển động tạo ra chuyển động.
Cùng với MinDragTranslation, ngăn cản các nỗ lực của máy dò chuyển động tạo ra chuyển động.
Lực tối đa được áp dụng cho đối tượng để đạt được mục tiêu của nó.
Mômen tối đa được áp dụng cho đối tượng để đạt được mục tiêu của nó.
Cùng với MaxDragAngle, ngăn cản các nỗ lực của máy dò chuyển động tạo ra chuyển động.
Cùng với MaxDragTranslation, ngăn cản các nỗ lực của máy dò chuyển động tạo ra chuyển động.
Xác định sự xoay YXZ của trục chuyển động so với khung tham chiếu.
Kiểm soát cấp độ quyền cho phép mà người chơi có thể tương tác với DragDetector.
Một ví dụ mà CFrame của nó là khung tham chiếu cho máy phát hiện kéo.
Phương pháp được sử dụng để di chuyển, hoặc không di chuyển, các đối tượng bị ảnh hưởng bởi máy dò kéo.
Các giá trị cao hơn khiến đối tượng đạt được mục tiêu của nó nhanh hơn.
Cho dù người dùng nhập vào một DragDetector bản sao lên máy chủ hay vẫn còn là địa phương cho khách hàng cụ thể.
Trục thứ cấp của chuyển động.
Nếu DragStyle là Enum.DragDetectorDragStyle.RotateTrackball , hệ số cho việc thêm một vòng kéo tròn như một đóng góp cho tổng.
Nếu DragStyle là Enum.DragDetectorDragStyle.RotateTrackball , hệ số cho việc thêm vòng xoay cuộn vào tổng.
Trong lúc nhập VR, chỉnh sửa Enum.KeyCode cho chế độ di chuyển thứ cấp.
The Axis được biểu hiện trong không gian thế giới.
The SecondaryAxis được biểu hiện trong không gian thế giới.
Đặt biểu tượng con trỏ để hiển thị khi chuột được giữ trên cha của ClickDetector hoặc DragDetector này.
Khoảng cách tối đa giữa một nhân vật và ClickDetector hoặc DragDetector để người chơi có thể tương tác với nó.
Phương Pháp
Thêm một chức năng để thay đổi hoặc hạn chế chuyển động đề xuất.
Trả về tham chiếu CFrame trong đó chuyển động được biểu hiện.
Có thể được gọi từ một kịch bản để khởi động lại kéo sử dụng các tham số mới.
Chuyển một chức năng để sử dụng nếu và chỉ nếu DragStyle được đặt thành Enum.DragDetectorDragStyle.Scriptable .
Chuyển một chức năng để sử dụng nếu và chỉ nếu PermissionPolicy được đặt thành Enum.DragDetectorPermissionPolicy.Scriptable .
Sự Kiện
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
Bắt lửa khi người dùng tiếp tục kéo đối tượng sau khi DragStart đã được khởi động.
Bắt lửa khi người dùng ngừng kéo đối tượng.
Bắt lửa khi người dùng bắt đầu kéo đối tượng.
Bắt lửa khi một người chơi tương tác với cha của ClickDetector hoặc DragDetector .
Bắt lửa khi cha của một ClickDetector hoặc DragDetector bị chọn bởi một người chơi.
Bắt lửa khi con trỏ của người chơi lướt khỏi cha của ClickDetector hoặc DragDetector .
Bắt lửa khi một người chơi nhấp chuột phải vào con trỏ chuột của họ trên một ClickDetector hoặc DragDetector .
Thuộc Tính
ActivatedCursorIcon
Đặt biểu tượng con trỏ để hiển thị khi chuột được kích hoạt trên cha của đối tượng này DragDetector .Nếu thuộc tính này được để trống, máy dò sẽ sử dụng biểu tượng mặc định.
Để thay đổi biểu tượng con trỏ đã kích hoạt, hãy đặt thuộc tính này vào ID tài sản của hình ảnh bạn muốn sử dụng.
ApplyAtCenterOfMass
Khi false (mặc định), lực hạn chế được áp dụng tại điểm mà người dùng nhấp vào.Khi đúng, lực được áp dụng tại trung tâm khối lượng của đối tượng.Chỉ liên quan nếu ResponseStyle là Enum.DragDetectorResponseStyle.Physical và đối tượng cha không neo.
Axis
Trục chính của chuyển động, được biểu hiện so với khung tham chiếu.Đối với một DragStyle của Enum.DragDetectorDragStyle.TranslateLine , hướng dịch; đối với Enum.DragDetectorDragStyle.TranslatePlane , bình thường trên phương tiện di chuyển; đối với Enum.DragDetectorDragStyle.RotateAxis , trục của 1D xoay.Thay đổi giá trị này tự động cập nhật Orientation và ngược lại.
DragFrame
Nếu ReferenceInstance được cài đặt, CFrame của trục quay so với khung tham chiếu; nếu không, CFrame của trục quay so với khung của nó tại đầu cuộc kéo.
DragStyle
Phương pháp được sử dụng để tạo chuyển động đề xuất, dựa trên một dòng các tia con trỏ. Xem Enum.DragDetectorDragStyle đối với các tùy chọn.
GamepadModeSwitchKeyCode
Trong lúc nhập gamepad, Enum.KeyCode để chuyển đổi chế độ di chuyển thứ cấp.Chỉ áp dụng nếu cảm biến kéo có DragStyle cả chế độ di chuyển chính và thứ cấp.
KeyboardModeSwitchKeyCode
Trong lúc nhập bàn phím, Enum.KeyCode để chuyển đổi chế độ di chuyển thứ cấp.Chỉ áp dụng nếu cảm biến kéo có DragStyle cả chế độ di chuyển chính và thứ cấp.
MaxDragAngle
Nếu lớn hơn MinDragAngle, bản dịch sẽ bị giới hạn trong phạm vi đó.
Đây không phải là một hạn chế; nó chỉ cản trở các nỗ lực của máy phát hiện chuyển động để tạo ra chuyển động nhằm đảm bảo nằm trong giới hạn.Xem AddConstraintFunction() để thêm hạn chế tùy chỉnh cho một lần kéo.
Chỉ liên quan nếu DragStyle là Enum.DragDetectorDragStyle.RotateAxis.
MaxDragTranslation
Ở bất kỳ chiều nào, nếu điều này lớn hơn MinDragTranslation, bản dịch sẽ bị giới hạn trong phạm vi đó.
Đây không phải là một hạn chế; nó chỉ cản trở các nỗ lực của máy phát hiện chuyển động để tạo ra chuyển động nhằm đảm bảo nằm trong giới hạn.Xem AddConstraintFunction() để thêm hạn chế tùy chỉnh cho một lần kéo.
MaxForce
Lực tối đa được áp dụng cho đối tượng để đạt được mục tiêu của nó. Chỉ có ý nghĩa nếu ResponseStyle là Enum.DragDetectorResponseStyle.Physical và đối tượng cha không neo.
MaxTorque
Mômen tối đa được áp dụng cho đối tượng để đạt được mục tiêu của nó. Chỉ có ý nghĩa nếu ResponseStyle là Enum.DragDetectorResponseStyle.Physical và đối tượng cha không neo.
MinDragAngle
Nếu điều này nhỏ hơn MaxDragAngle, bản dịch sẽ bị giới hạn trong phạm vi đó.
Đây không phải là một hạn chế; nó chỉ cản trở các nỗ lực của máy phát hiện chuyển động để tạo ra chuyển động nhằm đảm bảo nằm trong giới hạn.Xem AddConstraintFunction() để thêm hạn chế tùy chỉnh cho một lần kéo.
Chỉ liên quan nếu DragStyle là Enum.DragDetectorDragStyle.RotateAxis.
MinDragTranslation
Ở bất kỳ chiều nào, nếu điều này nhỏ hơn MaxDragTranslation, bản dịch sẽ bị giới hạn trong phạm vi đó.
Đây không phải là một hạn chế; nó chỉ cản trở các nỗ lực của máy phát hiện chuyển động để tạo ra chuyển động nhằm đảm bảo nằm trong giới hạn.Xem AddConstraintFunction() để thêm hạn chế tùy chỉnh cho một lần kéo.
Orientation
Xác định sự xoay YXZ của trục chuyển động so với khung tham chiếu (không thay đổi hướng của khung tham chiếu chính nó).Dịch chuyển song song và xoay trục sẽ ở trên trục Y này được chuyển hướng lại, và dịch chuyển phẳng trong XZ không gian.Thay đổi giá trị này tự động cập nhật Axis và ngược lại.
PermissionPolicy
Kiểm soát cấp độ quyền cho phép mà người chơi có thể tương tác với DragDetector. Mặc định là Enum.DragDetectorPermissionPolicy.Everybody.
ReferenceInstance
Một ví dụ mà CFrame của nó là khung tham chiếu cho máy phát hiện kéo.The DragFrame được biểu hiện tương quan với cái CFrame này có thể được truy xuất thông qua phương pháp GetReferenceFrame() .
Nếu ví dụ này là một PVInstance , khung tham chiếu sẽ là trung tâm của nó; nếu một Attachment , thế giới của nó sẽ là CFrame .Nếu nó là nil hoặc không phải là trước đó, khung tham chiếu sẽ dựa trên trục của cha của máy phát hiện kéo BasePart hoặc Model .
ResponseStyle
Một khi động tác được đề xuất đã được tính toán và có thể bị hạn chế, đây là triết lý được sử dụng để di chuyển, hoặc không di chuyển, các đối tượng bị ảnh hưởng bởi DragDetector .Xem Enum.DragDetectorResponseStyle đối với các tùy chọn.
Responsiveness
Các giá trị cao hơn khiến đối tượng đạt được mục tiêu của nó nhanh hơn. Chỉ có ý nghĩa nếu ResponseStyle là Enum.DragDetectorResponseStyle.Physical và đối tượng cha không neo.
RunLocally
Nếu sai (mặc định), khách hàng gửi tín hiệu lặp lại (DragStart , DragContinue , DragEnd ) đến máy chủ xử lý con trỏ, thay đổi mô hình dữ liệu và sao chép chúng cho các khách hàng tiếp theo.
Nếu đúng, khách hàng xử lý các tín hiệu này bởi chính nó và không sao chép chúng lên máy chủ.Client có thể được sử dụng để trả lời các sự kiện này và có thể được sử dụng để gửi bất kỳ thay đổi nào có thể được sao chép lên máy chủ.
SecondaryAxis
Trục thứ cấp của chuyển động. Liên quan đến hướng dùng cùng một triết lý như Attachments .
TrackballRadialPullFactor
Khi con trỏ nằm ngoài trackball, DragDetector có thể áp dụng một vòng xoay kéo tròn khiến quả bóng như thể nó đang cố gắng cuộn về phía con trỏ.Thuộc tính này là một nhân từ 0 đến 1 để thêm quay như một đóng góp cho tổng.Chỉ liên quan nếu DragStyle là Enum.DragDetectorDragStyle.RotateTrackball.
TrackballRollFactor
Khi con trỏ nằm ngoài trackball, DragDetector có thể áp dụng một cuộn quay xoay lăn biến biểu bóng như thể nó được gắn vào một kỷ niệm vinyl hướng về người xem.Thuộc tính này là một nhân từ 0 đến 1 để thêm vòng xoay cuộn vào tổng.Chỉ liên quan nếu DragStyle là Enum.DragDetectorDragStyle.RotateTrackball.
VRSwitchKeyCode
Trong lúc nhập VR, Enum.KeyCode để chuyển đổi chế độ di chuyển thứ cấp.Chỉ áp dụng nếu cảm biến kéo có DragStyle cả chế độ di chuyển chính và thứ cấp.
WorldAxis
The Axis được biểu hiện trong không gian thế giới. Liên quan đến hướng dùng cùng một triết lý như Attachments .
WorldSecondaryAxis
The SecondaryAxis được biểu hiện trong không gian thế giới. Liên quan đến hướng dùng cùng một triết lý như Attachments .
Phương Pháp
AddConstraintFunction
Thêm một chức năng để thay đổi hoặc hạn chế chuyển động đề xuất.Chức năng nhận một đầu vào CFrame của đề xuất chuyển động và trả lại một CFrame của chuyển động đã sửa đổi hoặc chưa sửa đổi chuyển động.Cả đầu vào và đầu ra được biểu hiện so với khung tham chiếu.Bạn có thể thêm nhiều chức năng sẽ được gọi theo thứ tự bởi priority , truyền kết quả theo chuỗi.
Để loại bỏ chức năng hạn chế được thêm, gọi Disconnect() trên đối tượng kết nối trả về.
Tham Số
Thứ tự ưu tiên cho các chức năng được thêm bằng cách này. Các giá trị cao hơn có ưu tiên hơn các giá trị thấp hơn.
Lợi Nhuận
Sử dụng đối tượng kết nối này để loại bỏ chức năng hạn chế.
GetReferenceFrame
Trả về tham chiếu CFrame trong đó chuyển động được biểu hiện; xem thêm thuộc tính ReferenceInstance để có thêm chi tiết.
Lợi Nhuận
RestartDrag
Có thể được gọi từ một kịch bản để khởi động lại kéo sử dụng các tham số mới, nếu các tham số như DragStyle , Axis hoặc SecondaryAxis thay đổi.
Lợi Nhuận
SetDragStyleFunction
Chuyển một chức năng để sử dụng nếu và chỉ nếu DragStyle được đặt thành Enum.DragDetectorDragStyle.Scriptable .Chức năng được cung cấp được gọi khi đáp ứng lại một tín hiệu DragContinue , nó nhận được con trỏ ray không gian dấu hiệu với loại Ray , và nó trả lại một CFrame chứa vị trí và hướng mong muốn của trục trong không gian thế giới.
Nếu chức năng trả về nil, đối tượng sẽ không được di chuyển.Điều này hữu ích nếu kịch bản chưa thu thập được tất cả thông tin cần thiết để đưa ra câu trả lời chính xác, hoặc trong các trường hợp tạm thời mà bạn muốn đối tượng ở lại nơi nó ở.
Tham Số
Chức năng để theo dõi các tín hiệu DragContinue .Chức năng này nhận được con trỏ chuột không gian của tín hiệu và nó trả về một CFrame chứa vị trí và hướng mong muốn của trục trong không gian thế giới.Nếu chức năng này trả về nil, đối tượng sẽ không được di chuyển.
Lợi Nhuận
SetPermissionPolicyFunction
Chuyển một chức năng để sử dụng nếu và chỉ nếu PermissionPolicy được đặt thành Enum.DragDetectorPermissionPolicy.Scriptable .Chức năng được cung cấp chấp nhận một tham số Player để bật/tắt máy dò cho một người chơi cụ thể.Nó cũng nhận một tham số part để chỉ ra cụ thể BasePart đã được nhấp vào, chẳng hạn như một phần trong một phần có thể kéo Model ; điều này hữu ích để bật/tắt cảm biến dựa trên giá trị Name , Color , HasTag() của phần đó hoặc các chi tiết khác.
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)
Tham Số
Chức năng để đặt tính tương tác của máy dò.Chức năng này chấp nhận một tham số Player để bật/tắt máy dò cho một người chơi cụ thể.Nó cũng nhận một tham số part để chỉ ra cụ thể BasePart đã được nhấp vào, chẳng hạn như một phần trong một thành phần có thể kéo Model ; điều này hữu ích để bật/tắt cảm biến dựa trên giá trị Name , Color , HasTag() của phần đó hoặc các chi tiết khác.
Lợi Nhuận
Sự Kiện
DragContinue
Bắt lửa khi người dùng tiếp tục kéo đối tượng sau khi DragStart đã được khởi động.
Tham Số
Nếu sử dụng một thiết bị nhập VR, CFrame của bàn tay giữ con trỏ/ursor/控制器.
Nếu cảm biến kéo có DragStyle cả chế độ di chuyển chính và thứ cấp, tham số này chỉ ra xem người dùng đang nhấn vào đầu vào chỉnh sửa được xác định thông qua KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode hoặc VRSwitchKeyCode .
DragEnd
Bắt lửa khi người dùng ngừng kéo đối tượng.
Tham Số
DragStart
Bắt lửa khi người dùng bắt đầu kéo đối tượng.
Tham Số
Khung trúng của con trỏ raycast đã khởi xướng cuộc kéo.
Phần bị ảnh hưởng bởi tia chuột phát sóng khởi xướng cuộc kéo.
Nếu sử dụng một thiết bị nhập VR, CFrame của bàn tay giữ con trỏ/ursor/控制器.
Nếu cảm biến kéo có DragStyle cả chế độ di chuyển chính và thứ cấp, tham số này chỉ ra xem người dùng đang nhấn vào đầu vào chỉnh sửa được xác định thông qua KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode hoặc VRSwitchKeyCode .