인스턴스는 문 및 서랍 열기, 부품 슬라이드, 그리고 훨씬 더 많은 것과 같은 경험에서 3D 개체와의 상호 작용을 용이하게 하고 장려합니다.주요 기능은 다음과 같습니다:
모든 입력(마우스, 터치, 게임패드 및 VR)을 통해 드래그할 수 있도록 아래에 또는 를 배치하여 코드 한 줄도 사용하지 않고 모든 것을 가능하게 합니다.
여러 옵션 중에서 선택하고, 를 통해 개체가 움직임에 어떻게 반응하는지 정의하고, 선택적으로 축 또는 이동 제한을 적용합니다.
스크립트는 끌어온 개체의 조작에 응답하여 UI를 드라이브하거나 슬라이딩 벽 스위치 디밸러에 따라 방의 조명 수준을 조정하여 논리적인 결정을 내릴 수 있습니다.
플레이어는 고정된 부품이나 모델을 조작할 수 있으며, 릴리스 시 배포한 위치에 정확히 유지됩니다.
작업실에서 선택, 이동, 크기 조정, 또는 회전 도구를 사용하지 않는 한, Studio에서 편집하는 동안 계속 작업합니다.
자세한 내용과 사용 예제는 3D 드래그 감지기 가이드를 참조하십시오.
요약
속성
이 DragDetector 의 부모에 마우스가 활성화될 때 커서 아이콘을 표시하도록 설정합니다.
제약 조건 힘이 개체의 질량 중심에 적용되는지 여부.
참조 프레임에 대해 표현된 움직임의 주축입니다. The primary axis of motion, expressed relative to the reference frame.
피벗의 CFrame 는 드래그 검출기의 ReferenceInstance 에 따라 달라집니다.
제안된 동작을 생성하는 데 사용되는 패러다임.
DragDetector가 사용자 입력에 응답하는지 여부.
게임패드 입력 중에는 이동 모드 보조 Enum.KeyCode 의 수정자.
키보드 입력 중에는 이동 모드의 보조 모디파이어 Enum.KeyCode가 발생합니다.
MinDragAngle 와 함께, 움직임 생성 시도를 방해합니다.
MinDragTranslation 와 함께, 움직임 생성 시도를 방해합니다.
목표에 도달하기 위해 개체에 적용된 최대 힘.
목표에 도달하기 위해 개체에 적용된 최대 토크.
MaxDragAngle 와 함께, 움직임 생성 시도를 방해합니다.
MaxDragTranslation 와 함께, 움직임 생성 시도를 방해합니다.
참조 프레임에 대한 운동 축의 YXZ 회전을 지정합니다.
플레이어가 DragDetector와 상호작용할 수 있는 권한 레벨을 제어합니다.
CFrame가 드래그 검색기의 참조 프레임인 인스턴스.
드래그 검출기에 영향을 받는 개체를 이동하거나 이동하지 않는 데 사용되는 패러다임.
더 높은 값은 개체가 목표에 더 빨리 도달하도록 합니다.
사용자 입력이 서버에 복제되거나 특정 클라이언트에 로컬로 유지되는지 여부 DragDetector 서버에 복제되거나 특정 클라이언트에 로컬로 유지되는지 여부
움직임의 보조 축.
만약 DragStyle 가 Enum.DragDetectorDragStyle.RotateTrackball 이면, 방사형 당기기 회전을 전체에 기여하는 부분으로 추가하는 배수입니다.
If DragStyle 가 Enum.DragDetectorDragStyle.RotateTrackball 이면, 롤 회전을 총에 추가하는 배수.
VR 입력 중에는 보조 이동 모드의 수정자 Enum.KeyCode가 있습니다.
세계 공간에서 표현된 Axis입니다.
세계 공간에서 표현된 SecondaryAxis입니다.
마우스가 이 ClickDetector 또는 DragDetector 의 부모에 놓일 때 커서 아이콘을 표시하도록 설정합니다.
캐릭터와 ClickDetector 또는 DragDetector 사이의 최대 거리는 플레이어가 상호 작용할 수 있도록 합니다.
메서드
제안된 동작을 수정하거나 제한하는 함수를 추가합니다.
움직임이 표현된 참조 CFrame를 반환합니다.
새 매개 변수를 사용하여 드래그를 다시 시작하기 위해 스크립트에서 호출될 수 있습니다.
DragStyle 가 Enum.DragDetectorDragStyle.Scriptable 로 설정되면 사용할 함수를 전달하고, 그리고 오직 그렇게 설정되면 사용합니다.
PermissionPolicy 가 Enum.DragDetectorPermissionPolicy.Scriptable 로 설정되면 사용할 함수를 전달하고, 그리고 오직 그렇게 설정되면 사용합니다.
이벤트
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
사용자가 DragStart 이후에 개체를 계속 끌어다 놓으면 발생합니다.
사용자가 개체를 끌기를 중지하면 발생합니다.
사용자가 개체를 드래그하기 시작할 때 발생합니다.
플레이어가 ClickDetector 또는 DragDetector의 부모와 상호작용할 때 발생합니다.
부모의 ClickDetector 또는 DragDetector 가 플레이어에 의해 덮여 있을 때 발생하는 화재
플레이어의 커서가 ClickDetector 또는 DragDetector의 부모에서 떨어지면 발생합니다.
플레이어가 마우스 커서를 ClickDetector 또는 DragDetector 클릭하면 발생합니다.
속성
ActivatedCursorIcon
이 DragDetector 의 부모에 마우스가 활성화될 때 커서 아이콘을 표시하도록 설정합니다.이 속성이 비어 있으면 검색기가 기본 아이콘을 사용합니다.
활성화된 커서 아이콘을 변경하려면 이 속성을 사용하려는 이미지의 자산 ID로 설정합니다.
ApplyAtCenterOfMass
거짓(기본값)일 때 사용자가 클릭하는 지점에 제약 조건 강도가 적용됩니다.참이면 힘이 물체의 질량 중심에 적용됩니다.관련성이 있으려면 ResponseStyle 가 Enum.DragDetectorResponseStyle.Physical 이고 부모 개체가 고정되지 않은 경우에만 해당됩니다.
Axis
참조 프레임에 대해 표현된 움직임의 주축입니다. The primary axis of motion, expressed relative to the reference frame.For a DragStyle of Enum.DragDetectorDragStyle.TranslateLine , the direction of translation; for Enum.DragDetectorDragStyle.TranslatePlane , the normal to the plane of motion; for Enum.DragDetectorDragStyle.RotateAxis , the axis of 1D rotation.이 값을 자동으로 변경하면 Orientation 및 그 반대가 업데이트됩니다.
GamepadModeSwitchKeyCode
게임패드 입력 중에는 Enum.KeyCode 로 이동 모드의 보조 모드를 전환합니다.드래그 감지기의 DragStyle 가 주 및 보조 이동 모드를 모두 갖는 경우에만 적용됩니다.
KeyboardModeSwitchKeyCode
키보드 입력 중에는 이차 이동 모드를 전환하기 위한 Enum.KeyCode가 표시됩니다.드래그 감지기의 DragStyle 가 주 및 보조 이동 모드를 모두 갖는 경우에만 적용됩니다.
MaxDragAngle
이것이 MinDragAngle보다 크면 번역이 해당 범위 내에 클램핑됩니다.
이것은 제약 조건이 아니며, 단지 제한 내에 머무르기 위해 드래그 감지기의 움직임 생성 시도를 방해합니다.드래그에 사용자 지정 제약 조건을 추가하려면 AddConstraintFunction()를 참조하십시오.
관련성이 있으려면 DragStyle 가 Enum.DragDetectorDragStyle.RotateAxis 이어야 합니다.
MaxDragTranslation
모든 차원에서 이 값이 MinDragTranslation보다 크면 번역이 해당 범위 내에 클램핑됩니다.
이것은 제약 조건이 아니며, 단지 제한 내에 머무르기 위해 드래그 감지기의 움직임 생성 시도를 방해합니다.드래그에 사용자 지정 제약 조건을 추가하려면 AddConstraintFunction()를 참조하십시오.
MaxForce
목표에 도달하기 위해 개체에 적용되는 최대 힘. ResponseStyle 가 Enum.DragDetectorResponseStyle.Physical 이고 부모 개체가 고정되지 않은 경우에만 관련됩니다.
MaxTorque
목표에 도달하기 위해 개체에 적용된 최대 토크. 부모 개체가 고정되지 않은 경우에만 관련됩니다 ResponseStyle 및 Enum.DragDetectorResponseStyle.Physical.
MinDragAngle
이것이 MaxDragAngle보다 작으면 번역이 해당 범위 내에 클램핑됩니다.
이것은 제약 조건이 아니며, 단지 제한 내에 머무르기 위해 드래그 감지기의 움직임 생성 시도를 방해합니다.드래그에 사용자 지정 제약 조건을 추가하려면 AddConstraintFunction()를 참조하십시오.
관련성이 있으려면 DragStyle 가 Enum.DragDetectorDragStyle.RotateAxis 이어야 합니다.
MinDragTranslation
모든 차원에서 이 값이 MaxDragTranslation보다 작으면 번역이 해당 범위 내에 클램핑됩니다.
이것은 제약 조건이 아니며, 단지 제한 내에 머무르기 위해 드래그 감지기의 움직임 생성 시도를 방해합니다.드래그에 사용자 지정 제약 조건을 추가하려면 AddConstraintFunction()를 참조하십시오.
Orientation
참조 프레임과 관련된 운동 축의 YXZ 회전을 지정하여(참조 프레임 자체의 방향은 변경되지 않음) 참조 프레임의 방향을 변경하지 않습니다.선형 번역과 축 회전은 이 재설정된 Y 축에서 수행되며, 평면 번역은 XZ 평면에서 수행됩니다.이 값을 자동으로 변경하면 Axis이 업데이트되고 반대로도 마찬가지입니다.
PermissionPolicy
플레이어가 DragDetector와 상호작용할 수 있는 권한 레벨을 제어합니다. 기본값은 Enum.DragDetectorPermissionPolicy.Everybody입니다.
ReferenceInstance
CFrame가 드래그 검색기의 참조 프레임인 인스턴스.The DragFrame 는 검색할 수 있는 이 CFrame 에 대해 표현되며, 이는 GetReferenceFrame() 메서드를 통해 검색할 수 있습니다.
이 인스턴스가 PVInstance 인 경우, 참조 프레임은 그 피벗이 됩니다; 만약 Attachment 인 경우, 그 세계는 CFrame입니다.만약 그것이 nil 이거나 이전의 어느 것도 아니라면, 참조 프레임은 드래그 검출기의 부모 BasePart 또는 Model의 피벗을 기반으로 합니다.
ResponseStyle
제안된 동작이 계산되고 제한되면, 이는 영향을 받는 개체를 이동하거나 이동하지 않는 데 사용되는 패러다임입니다. DragDetector 에 영향을 주는 개체를 이동하거나 이동하지 않는 데 사용되는 패러다임입니다.옵션은 Enum.DragDetectorResponseStyle에 참조하십시오.
Responsiveness
더 높은 값은 개체가 목표에 더 빨리 도달하도록 합니다. 관련성이 있으려면 ResponseStyle 가 Enum.DragDetectorResponseStyle.Physical 이고 부모 개체가 고정되지 않은 경우에만 해당됩니다.
RunLocally
거짓(기본값)인 경우 클라이언트는 커서 레이스를 처리하고 데이터 모델을 변경하며 클라이언트에 전달하는 서버에 복제된 신호(DragStart, DragContinue, DragEnd)를 보냅니다.
true이면 클라이언트가 직접 이러한 신호를 처리하고 서버에 복제하지 않습니다.클라이언트 LocalScripts는 이러한 이벤트에 응답하고 RemoteEvents는 서버에 복제해야 하는 모든 변경 사항을 전송하는 데 사용될 수 있습니다.
TrackballRadialPullFactor
커서가 트랙볼 밖에 있을 때, DragDetector 는 공이 커서를 향해 롤아웃하려는 것처럼 방사형 당기기 회전을 적용할 수 있습니다.이 속성은 0에서 1의 배수로, 해당 회전을 전체에 기여로 추가합니다.관련성이 있으려면 DragStyle 가 Enum.DragDetectorDragStyle.RotateTrackball 이어야 합니다.
TrackballRollFactor
커서가 트랙볼 밖에 있을 때, DragDetector 는 볼을 뷰어에 마운트된 것처럼 회전시키는 롤 회전을 적용할 수 있습니다.이 속성은 롤 회전을 합계에 추가하기 위한 0에서 1의 배수입니다.관련성이 있으려면 DragStyle 가 Enum.DragDetectorDragStyle.RotateTrackball 이어야 합니다.
VRSwitchKeyCode
VR 입력 중에는 보조 이동 모드를 전환하기 위한 Enum.KeyCode가 표시됩니다.드래그 감지기의 DragStyle 가 주 및 보조 이동 모드를 모두 갖는 경우에만 적용됩니다.
메서드
AddConstraintFunction
제안된 동작을 수정하거나 제한하는 함수를 추가합니다.함수는 제안된 모션의 입력 을 받아 수정된 모션 또는 수정되지 않은 모션 을 반환합니다.입력과 출력 모두 참조 프레임에 대해 표현됩니다.priority 순서대로 호출될 여러 함수를 추가하여 결과를 체인으로 전달할 수 있습니다.
추가된 제약 조건 함수를 제거하려면 반환된 연결 개체에서 Disconnect()를 호출하십시오.
매개 변수
이 메서드를 통해 추가된 함수의 우선 순위 순서. 더 높은 값이 더 낮은 값보다 우선합니다.
제안된 동작을 수정하거나 제한하는 함수.이 함수는 제안된 모션의 입력 을 받아 참조 프레임에 관련된 수정된 모션 또는 수정되지 않은 모션의 을 반환하며, 모두 참조 프레임과 관련됩니다.
반환
이 연결 개체를 사용하여 제약 조건 함수를 제거합니다.
RestartDrag
매개 변수(예: DragStyle, Axis, 또는 SecondaryAxis 변경되는 경우)가 변경되면 스크립트에서 호출하여 새 매개 변수를 사용하여 드래그를 다시 시작할 수 있습니다.
반환
SetDragStyleFunction
DragStyle 가 Enum.DragDetectorDragStyle.Scriptable 로 설정되면 사용할 함수를 전달하고, 그리고 오직 그렇게 설정되면 사용합니다.지정된 함수는 신호 DragContinue 에 응답할 때 호출되며, 신호의 세계 공간 커서 레이를 유형 Ray 으로 받고, 세계 공간에서 피벗의 원하는 위치와 방향을 포함하는 CFrame 을 반환합니다.
함수가 nil를 반환하면 개체가 이동되지 않습니다.스크립트가 올바른 답변을 제공하기 위해 필요한 모든 정보를 아직 수집하지 않았거나, 개체가 현재 위치에 유지되도록 하려는 임시 경우에 유용합니다.
매개 변수
신호 DragContinue를 모니터링하는 함수.이 함수는 신호의 세계 공간 커서 레이를 받고 세계 공간에서 피벗의 원하는 위치와 방향을 포함하는 CFrame를 반환합니다.이 함수가 nil를 반환하면 개체가 이동되지 않습니다.
반환
SetPermissionPolicyFunction
PermissionPolicy 가 Enum.DragDetectorPermissionPolicy.Scriptable 로 설정되면 사용할 함수를 전달하고, 그리고 오직 그렇게 설정되면 사용합니다.지정된 함수는 특정 플레이어에 대한 검색기 활성화/비활성화를 위해 Player 매개변수를 받습니다.또한 드래그 가능한 part 내의 한 부분과 같이 특정 BasePart 가 클릭되었음을 나타내는 Model 매개 변수를 받습니다; 이는 해당 부분의 Name , Color , HasTag() 값이나 다른 세부 정보에 따라 탐지기를 활성화/비활성화하는 데 유용합니다.
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)
매개 변수
반환
이벤트
DragContinue
사용자가 DragStart 이후에 개체를 계속 끌어다 놓으면 발생합니다.
매개 변수
VR 입력 기기사용하는 경우, 커서/포인터/컨트롤러를 잡고 있는 손의 CFrame입니다.
드래그 검출기의 DragStyle 가 주 및 보조 이동 모드를 모두 갖는 경우, 이 매개변수는 사용자가 KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode 또는 VRSwitchKeyCode 을 통해 정의된 모디파이어 입력을 누르고 있는지 여부를 나타냅니다.
DragStart
사용자가 개체를 드래그하기 시작할 때 발생합니다.
매개 변수
드래그를 시작한 커서 레이캐스트의 히트 프레임.
드래그를 시작한 커서 레이캐스트에 의해 타격된 부분.
VR 입력 기기사용하는 경우, 커서/포인터/컨트롤러를 잡고 있는 손의 CFrame입니다.
드래그 검출기의 DragStyle 가 주 및 보조 이동 모드를 모두 갖는 경우, 이 매개변수는 사용자가 KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode 또는 VRSwitchKeyCode 을 통해 정의된 모디파이어 입력을 누르고 있는지 여부를 나타냅니다.