Workspace 의 핵심 작업은 3D 세계에 존재하는 개체를 효과적으로 보관하는 것입니다, BaseParts 및 Attachments.이러한 개체는 Workspace 의 하위 개체이지만, 활성 상태가 됩니다.For BaseParts , 이것은 그들이 렌더링되고 다른 부품과 세계와 물리적으로 상호작용할 것임을 의미합니다.For Attachments , 이것은 그들에게 장식된 개체, 예를 들어 ParticleEmitters , Beams 및 BillboardGuis 가 렌더링될 것임을 의미합니다.
이 동작을 이해하는 것이 중요합니다, 왜냐하면 필요하지 않을 때 개체를 Workspace 제거할 수 있기 때문입니다.예를 들어, 다른 맵이 재생될 때 맵 Models 을 제거할 수 있습니다.3D 세계에서 즉시 필요하지 않은 개체는 일반적으로 ReplicatedStorage 또는 ServerStorage에 저장됩니다.
활성 3D 개체 보유자의 역할로, Workspace 에는 부품, 위치 및 서로 간의 접합에 관련된 다양한 유용한 기능이 포함되어 있습니다.
작업 영역에 액세스
Workspace 는 여러 방법으로 액세스할 수 있으며, 모두 유효합니다.
- workspace
- game:GetService("Workspace")
- game.Workspace
노트
- 및 와 같이 장식이 필요한 개체는 다른 장식이 설정되지 않은 상태에서 부모에게 전달되면 위치에 있을 것입니다.
- 클래스 및 메서드는 플러그인에서만 사용할 수 있는 및 메서드로 상속되어 재정의됩니다.
- 삭제할 수 없습니다 Workspace .
- 클라이언트의 현재 Camera 개체에 액세스하려면 Workspace.CurrentCamera 속성을 사용할 수 있습니다.
- Terrain 개체는 Workspace.Terrain 속성을 사용하여 액세스할 수 있습니다.
요약
속성
에어로다이나믹 포스 모델에서 사용되는 레벨수준의 공기 밀도.
다른 사용자가 생성한 자산이 게임에서 판매될 수 있는지 여부를 결정합니다.
로컬 클라이언트의 애니메이션 제한 모드를 지정합니다.
로컬 플레이어가 사용하는 Camera 개체.
게임이 실행된 시간(초)의 양.
물리 엔진이 의 속력 특성이 참인 경우 공기역학 힘을 계산하는지 여부를 결정합니다.
애니메이션된 지형 잔디, 동적 구름, 입자에 대한 전역 바람 벡터를 지정합니다.
떨어지는 데 적용된 중력에 의한 가속을 결정합니다 BaseParts .
IKControls에 대한 제약 조건을 지원합니다. 비활성화되면 IKControls는 물리적 제약 조건을 무시합니다.
캐릭터 머리 및 액세서리를 메쉬 파트로 다운로드해야 하는지 여부를 설정합니다.
이동 제약 조건 중 하나를 사용할 때 조립 루트 부분을 선택하는 데 사용되는 논리를 제어합니다.
솔버가 물리 시뮬레이션을 시간에 따라 어떻게 진행할지 설정합니다.
엔진이 이벤트 처리기를 재개할 때를 구성합니다.
엔진이 플레이어에서 콘텐츠를 스트리밍할 때를 결정하는 방법을 구성합니다.
장소에 대한 콘텐츠 스트리밍이 활성화되었는지 여부.
StreamingIntegrityMode가 활성인지 여부를 결정합니다.
우선 순위가 높은 플레이어에게 콘텐츠가 스트리밍되는 최소 거리.
콘텐츠가 플레이어에게 스트리밍될 최대 거리.
서로 충돌하지 않도록 설정된 다른 그룹의 parts에서 충돌 및 터치 이벤트를 무시할지 여부를 결정합니다.
인스턴스 스트리밍이 활성화된 경험에 대한 모델의 세부 수준을 설정합니다.
인스턴스 스트리밍이 활성화된 경우 Models에서 모델 스트리밍 행동을 제어합니다.
기본 부분의 Model 또는 nil 명시적으로 설정되지 않은 경우.
편집기에만 사용되는 속성으로, 피벗 주위에 모델을 확장하는 데 사용됩니다. 이 속성을 설정하면 피벗에서 Model/ScaleTo가 호출된 것처럼 규모가 이동됩니다.
어떤 Model 가 가지고 있지 않은 피벗의 위치를 결정합니다. where the pivot of a which does not have a set Model.PrimaryPart 는.
메서드
최근 물리학의 영향을 받아 물리적으로 활동적인 것으로 간주되는 BaseParts 개의 숫자를 반환합니다.
실시간 물리 시뮬레이션이 현재 제한되고 있는 비율을 나타내는 정수, 0과 100 사이를 반환합니다. Returns an integer, between 0 and 100, representing the percentage of real-time that physics simulation is currently being throttled to.
물리가 현재 시뮬레이션되고 있는 초당 프레임 수를 반환합니다.
서버의 유닉스 시간을 초로 반환합니다.
부품의 표면과 지정된 조인 생성 모드에 따라 지정된 Parts 및 모든 접촉 부품 사이의 조인을 생성합니다.
게임에 PGS 물리학 솔버가 활성화되어 있으면 true를 반환합니다.
위치와 배율을 조정하여 를 표시하여 현재 에 있는 범위를 보여줍니다.
주어진 BasePart 중 하나라도 다른 부품에 닿으면 진실을 반환합니다.
지정된 방향으로 블록 모양을 던지고 모양이 또는 또는 셀에 타격하면 반환합니다.
부품의 바인딩 상자 가 지정된 상자에 겹치는 배열을 반환합니다.
부품의 바인딩 상자 가 지정된 구체에 겹치는 배열을 반환합니다.
주어진 부품과 공유되는 부품의 공간을 가진 배열을 반환합니다.
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):()
부품을 직접 이동하는 대신 역방향 카메라틱을 통해 지정된 부품을 지정된 위치로 이동하여 부품에 참여하는 모든 관절, 제약 조건 또는 충돌이 물리적으로 만족스럽게 유지되도록 합니다.
원점, 방향 및 선택적 RaycastParams 을 사용하여 광선을 발사하고, 적격 개체 또는 지형이 광선과 교차하면 RaycastResult 을 반환합니다.
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
지정된 방향으로 구형 모양을 던지고 모양이 또는 또는 셀에 타격하면 반환합니다.
지정된 시간 증가와 선택적 BaseParts 집합에 따라 세계의 부품에 대한 시뮬레이션을 앞으로 진행합니다.
지정된 플레이어에 대해 이 모델을 영구적으로 유지하도록 설정합니다.Model.ModelStreamingMode 는 추가로 인해 변경된 동작을 위해 PersistentPerPlayer 로 설정해야 합니다.
모델의 모든 부분을 포함하는 볼륨의 설명을 반환합니다.
설정되면 의 모든 것을 포함하는 가장 작은 바인딩 상자의 크기를 반환합니다.Returns the size of the smallest bounding box that contains all of the in the , aligned with the if it is set.
이 모델 개체가 영구적으로 유지하는 모든 Player 개체를 반환합니다.이 메서드가 Script 또는 LocalScript 호출되는지에 따라 동작이 달라집니다.
새로 생성된 모델에 기본값이 1인 모델의 캐논 규모를 반환하며, Model/ScaleTo를 통해 크기가 조정될 때 변경됩니다.
PrimaryPart를 지정된 위치로 이동합니다. 기본 부품이 지정되지 않았으면 모델의 루트 부품이 사용됩니다.
지정된 플레이어에 대해 이 모델을 더 이상 영구적으로 유지하지 않습니다.Model.ModelStreamingMode 는 제거로 인해 변경된 동작을 위해 PersistentPerPlayer 로 설정해야 합니다.
모델의 규모 요소를 설정하여 모든 하위 인스턴스의 크기와 위치를 조정하여 규모 요소가 1일 때 초기 크기와 위치와 관련하여 그 규모 요소가 있도록 합니다.
모델의 방향을 유지하면서 주어진 오프셋 Model에 의해 이동하여 Vector3로 전환합니다.새 위치에 이미 다른 BasePart 또는 Terrain 가 있으면 해당 Model 가 해당 개체를 겹치게 합니다.
PVInstance의 피벗을 가져옵니다.
피벗이 지금 지정된 PVInstance 에 위치하도록 모든 하위 요소 PVInstances 와 함께 변환하여 피벗이 지금 지정된 CFrame 에 위치합니다.
이벤트
지속적인 모델이 지정된 플레이어에 전송되면 발생합니다.
속성
AirDensity
RMU/stud³ 단위(보기 Roblox 단위)의 지상 수준( Y 의 0) 공기 밀도는 공기역학 힘을 계산하기 위해 사용되며, Workspace.FluidForces가 Experimental인 경우.기본값은 표준 온도와 압력에서 실제적인 해수면 공기 밀도에 해당합니다. Y 고도가 증가함에 따라 공기 밀도가 감소하여 100,000스터드에서 지상 수준 값의 5%에 도달합니다.아래 Y 의 0, 공기 밀도는 입력 값에 고정됩니다.
AllowThirdPartySales
이 Workspace 속성은 다른 사용으로 생성된 자산이 게임에서 판매될 수 있는지 여부를 결정합니다.
제3자 판매가 무엇인가요?
기본값이 false이기 때문에, 장소 생성자(플레이어 또는 그룹)와 Roblox가 생성한 자산만 MarketplaceService를 사용하여 판매할 수 있습니다.
대부분의 경우 게임은 타사 자산을 판매할 필요가 없습니다.그러나 거래 채팅과 같은 일부 게임에는 이 기능이 필요하며 따라서 옵트인 옵션으로 존재합니다.
제3자 제품을 어떻게 판매할 수 있나요?
참고, 개발자 제품은 AllowThirdPartySales가 설정된 게임과 관련 없이 해당 제품과 연결된 게임에서만 판매될 수 있습니다.이 속성은 게임 패스 및 의류에 영향을 줍니다.
AvatarUnificationMode
ClientAnimatorThrottling
로컬 클라이언트에 사용할 Enum.ClientAnimatorThrottlingMode를 지정합니다.
활성화되면 원격으로 시뮬레이션된 Model 인스턴스의 애니메이션이 속도를 줄이기 시작합니다. 속도 제한기는 다음을 사용하여 속도 제한 강도를 계산합니다.
- 게임 내 FPS
- 활성 애니메이션 수
CurrentCamera
로컬 플레이어가 사용하는 Camera 개체.
현재 카메라 사용 방법
클라이언트의 Camera 개체를 찾을 때 Workspace 이름의 자식을 찾는 대신 이 속성을 사용하십시오.
이 속성을 설정하면 이전 포함하여 모든 다른 개체가 파괴됩니다.이 속성을 nil 또는 작업 공간의 후손이 아닌 카메라로 설정하거나 CurrentCamera 그렇지 않으면 파괴되면 새로운 Camera 가 생성되고 할당됩니다.카메라를 파괴하면 의도치 않은 결과가 발생할 수 있으므로 이러한 시나리오를 피하십시오.
자세한 내용은 카메라 스크립팅을 참조하십시오.
DistributedGameTime
게임이 실행된 시간(초)의 양.
제목에도 불구하고 이 값은 현재 클라이언트와 서버에서 '분산'되지 않습니다.대신, 서버는 서버가 실행된 시간을 나타냅니다.클라이언트에서는 클라이언트가 서버에 연결된 시간을 나타냅니다.
개발자는 위의 동작에 의존해서는 안되며, 이 속성이 미래에 클라이언트와 서버 간에 동기화될 수 있습니다.
프로그램이 실행되기 시작한 이후 시간을 찾는 사람들은 대신 'time' 함수를 사용해야 합니다.분산 게임 시간과 대안 간의 비교는 아래를 참조하십시오.
local Workspace = game:GetService("Workspace")print(Workspace.DistributedGameTime) -- Time the game started runningprint(os.time()) -- Time since epoch (1 January 1970, 00:00:00) UTCprint(tick()) -- Time since epoch (1 January 1970, 00:00:00) system timeprint(time()) -- Time the game started runningprint(elapsedTime()) -- Time since Roblox started running
FallHeightEnabled
FallenPartsDestroyHeight
이 속성은 Roblox 엔진이 떨어지는 BaseParts 및 그 조상 Models을 부모로 지정하여 자동으로 제거하는 높이를 결정합니다. Workspace 에서 부모로 지정하여 떨어지는 nil 및 그 조상 을 제거합니다.맵에서 떨어진 부품이 영원히 계속 떨어지는 것을 방지하기 위한 것입니다.
이 동작으로 인해 제거된 부품이 Model에서 마지막 부품인 경우 해당 모델도 제거됩니다.이는 부품의 모든 모델 조상에 적용됩니다.
이 속성은 부동 소수점 오차로 인해 원천으로부터 멀리 제대로 시뮬레이션되거나 렌더링되지 않기 때문에 -50,000에서 50,000 사이에 클램핑됩니다.
이 속성은 스크립트에서 읽을 수 있지만, 플러그인, 명령줄 또는 Studio의 속성 창에서만 설정할 수 있습니다.
FluidForces
이 속성이 활성화되면 물리 엔진은 속성이 참인 항공 역학 힘을 계산합니다.기본값, Default , 은 공기역학 힘을 비활성화합니다.스크립팅을 통해 이 속성을 설정할 수 없으며 대신 Studio에서 토글해야 합니다.
Gravity
떨어지는 데 적용된 중력에 의한 가속을 결정합니다 BaseParts .이 값은 초당 스터드 제곱으로 측정되며 기본값은 196.2 스터드/초 2로 설정됩니다.이 값을 변경하여 개발자는 게임에서 낮거나 높은 중력의 효과를 시뮬레이션할 수 있습니다.
코드 샘플
This script creates a touch pad in the workspace that, when touched, will reduce the game's gravity. Activating the pad again will switch back to normal gravity.
local MOON_GRAVITY_RATIO = 1.62 / 9.81
local DEFAULT_GRAVITY = 196.2
local MOON_GRAVITY = DEFAULT_GRAVITY * MOON_GRAVITY_RATIO
-- Create a touch pad
local pad = Instance.new("Part")
pad.Size = Vector3.new(5, 1, 5)
pad.Position = Vector3.new(0, 0.5, 0)
pad.Anchored = true
pad.BrickColor = BrickColor.new("Bright green")
pad.Parent = workspace
-- Listen for pad touch
local enabled = false
local debounce = false
local function onPadTouched(_hit)
if not debounce then
debounce = true
enabled = not enabled
workspace.Gravity = enabled and MOON_GRAVITY or DEFAULT_GRAVITY
pad.BrickColor = enabled and BrickColor.new("Bright red") or BrickColor.new("Bright green")
task.wait(1)
debounce = false
end
end
pad.Touched:Connect(onPadTouched)
IKControlConstraintSupport
IKControls에 대한 제약 조건 지원을 활성화합니다.값 Default 은 Enabled 와 동일합니다.비활성화되면 IKControls는 물리적 제약 조건을 무시합니다.자세한 내용은 IKControl에 참조하십시오.
InsertPoint
MeshPartHeadsAndAccessories
캐릭터 머리 및 액세서리를 MeshParts로 다운로드해야 하는지 여부를 설정합니다.값 Default 은 Enabled 과 동일합니다.이 기능이 활성화되면 기본 아바타는 캐릭터의 머리와 액세서리에 대해 MeshParts를 사용합니다.
ModelStreamingBehavior
MoverConstraintRootBehavior
다음 제약 조건 중 하나를 사용하는 메커니즘의 조립 루트 부분을 선택하는 논리를 제어합니다.Controls the logic used to select theassembly root part for mechanisms that use any of the following constraints:
이 속성이 로 설정되면 제약 조건이 두 부품 사이에 힘을 전달하지 않는 경우 조립 루트 부분을 선택할 때 이러한 제약 조건이 무시됩니다(일부 예는 로 설정되고, 로 설정되고, 또는 로 설정되고, 또는 로 설정되고, 또는 로 설정되고, 또는 로 설정되었습니다).
이 속성이 Enum.MoverConstraintRootBehaviorMode.Disabled 로 설정되면 이러한 제약 조건이 오류로 인해 조립 루트 부품을 선택할 때 고려될 수 있으며, 이러한 제약 조건을 메커니즘에 추가할 때 네트워크 소유권 불일치 및 지연이 발생할 수 있습니다.
PathfindingUseImprovedSearch
PhysicsImprovedSleep
PhysicsSteppingMethod
솔버가 물리 시뮬레이션을 시간에 따라 어떻게 진행할지 설정합니다.이 옵션은 스크립트할 수 없으며 Studio 내 PhysicsSteppingMethod 속성의 작업 공간 에서 설정해야 합니다.자세한 내용은 적응형 시간 스텝에 참조하십시오.
<th>설명</th></tr></thead><tbody><tr><td><b>적응형</b></td><td>엔진은 240Hz, 120Hz 또는 60Hz의 개별 어셈블리에 대해 최적의 시뮬레이션 속도를 할당하려고 합니다.이 설정은 이행위해 최적화되었습니다.</td></tr><tr><td><b>고정됨</b></td><td>작업 영역 내의 모든 시뮬레이션된 어셈블리는 240Hz로 전진합니다. 이 옵션은 최적의 안정성과 시뮬레이션 정확도를 위해 가장 좋습니다.</td></tr><tr><td><b>기본</b></td><td>현재 기본값은 <b>고정</b>입니다.</td></tr></tbody>
옵션 |
---|
다른 시뮬레이션 속도의 어셈블리가 Constraints를 통해 연결되거나 충돌하면 결합된 메커니즘이 안정성을 위해 가장 높은 시뮬레이션 속도로 기본 설정됩니다.
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
이 속성은 이벤트 처리기가 이벤트가 발생할 때 즉시 재시작되거나 지연되어 나중에 재시작되는지 여부를 결정합니다.재시작 지점은 현재 다음을 포함합니다:
- 입력 처리(처리될 입력마다 한 번씩 재개, 참조 UserInputService)
- 레거시 대기 스크립트 재시작, 예를 들어 wait() , spawn() 및 delay()
자세한 내용은 지연된 이벤트를 참조하십시오.
StreamOutBehavior
StreamOutBehavior 컨트롤은 기기 메모리 조건 또는 스트리밍 반경에 따라 콘텐츠를 언로드하는 위치를 제어합니다.
참조하세요:
- Workspace.StreamingEnabled 콘텐츠 스트리밍을 활성화할지 여부를 제어하는 것
StreamingEnabled
StreamingEnabled 속성은 게임 콘텐츠 스트리밍이 플레이스활성화되었는지 여부를 결정합니다.이 속성은 스크립트할 수 없으므로 Studio의 작업 공간 개체에 설정해야 합니다.
참조하세요:
StreamingIntegrityMode
인스턴스 스트리밍이 활성화되어 있으면 플레이어의 캐릭터가 클라이언트에 스트리밍되지 않은 세계의 지역으로 이동하면 경험이 의도하지 않은 방식으로 동작할 수 있습니다.스트리밍 무결성 기능은 잠재적으로 문제가 될 수 있는 상황을 피할 수 있는 방법을 제공합니다.
StreamingMinRadius
StreamingMinRadius 속성은 플레이어의 캐릭터 또는 현재 ReplicationFocus 주에 콘텐츠가 최우선으로 스트리밍될 반경을 나타낸다.기본 64스터드.
기본 최소 반경을 증가시키는 경우 다른 구성 요소에 대한 메모리와 서버 대역이 더 필요하기 때문에 주의해야 합니다.
참조하세요:
- Workspace.StreamingEnabled 콘텐츠 스트리밍을 활성화할지 여부를 제어하는 것
StreamingTargetRadius
스트리밍 대상 반경 속성은 플레이어의 캐릭터 또는 콘텐츠가 스트리밍될 현재 ReplicationFocus에서 최대 거리를 제어합니다.기본값은 1024 스터드입니다.
엔진은 메모리 허용 범위 내에서 목표 반경을 넘어 이전에 로드된 콘텐츠를 유지할 수 있도록 허용됩니다.
참조하세요:
- Workspace.StreamingEnabled 콘텐츠 스트리밍을 활성화할지 여부를 제어하는 것
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
이 속성은 서로 충돌하지 않도록 설정된 다른 그룹의 parts가 충돌과 터치 이벤트를 무시하는지 여부를 결정합니다.기본적으로 이 속성의 값은 false 로 설정됩니다.
이 속성이 활성화되면 충돌하지 않도록 설정된 다른 그룹의 부품도 CanTouch 속성을 무시하고, BasePart.CanCollide 처럼 무시됩니다.CanTouch의 동작에 대한 자세한 정보는 속성 페이지를 방문하십시오.
메서드
GetNumAwakeParts
최근 물리학의 영향을 받아 물리적으로 활동적인 것으로 간주되는 BaseParts 개의 숫자를 반환합니다.
이 함수는 물리적 힘에 의해 영향을 받거나 최근에 영향을 받은 BaseParts의 수를 측정합니다.
local Workspace = game:GetService("Workspace")print(Workspace:GetNumAwakeParts())
취침 vs 깨어있는 부품
이행보장하기 위해 Roblox는 물리가 '수면' 상태에 적용되지 않는 BaseParts에 설정합니다.예를 들어, BaseParts 와 BasePart.Anchored 가 참으로 설정되어 있으면 물리학이 적용되지 않기 때문에 항상 잠을 자게 됩니다.고정되지 않은 BasePart 에 힘이 적용되면 '깨어 있는' 상태가 적용됩니다.잠자는 동안에도 BasePart 로블록스 물리 엔진은 물리적 힘이 부품과 올바르게 상호작용하도록 연속 계산을 수행합니다.BasePart 물리적 힘에 더 이상 영향을 받지 않으면 잠자는 상태로 되돌아갑니다.
반환
깨어 있는 부품의 수.
GetPhysicsThrottling
실시간 물리 시뮬레이션이 현재 제한되고 있는 비율을 나타내는 정수, 0과 100 사이를 반환합니다. Returns an integer, between 0 and 100, representing the percentage of real-time that physics simulation is currently being throttled to.
이 함수는 물리 제한이 발생하는지 여부와 정도를 결정하는 데 사용할 수 있습니다.
물리 제한이 무엇인가요?
물리 제한은 물리 엔진이 실시간으로 게임을 따라갈 수 없다고 감지할 때 발생합니다.물리가 제한되면 덜 자주 업데이트되어 더 느리게 이동하는 것처럼 BaseParts가 나타납니다.
스로틀링 없이 물리 시뮬레이션은 게임과 맞지 않아 더 멀리 떨어지게 됩니다.이로 인해 프레임 속도가 낮아지고 다른 원하지 않는 행동이 발생할 수 있습니다.
Humanoids와 연결된 개체는 물리적 제한에서 제외됩니다.
또한 참조하십시오 Workspace:SetPhysicsThrottleEnabled() .
물리 제한 시연
개발자는 항상 물리 엔진을 과부하시키는 장소를 만드는 것을 피해야 하며, 이는 플레이어에게 저품질 경험을 유발합니다.그러나 연구 목적으로 물리 제한을 시뮬레이션하려는 사람들은 단지 많은 Parts 매우 빨리 만들어야 합니다.
local Workspace = game:GetService("Workspace")local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", Workspace)end
반환
물리 시뮬레이션이 현재 제한되고 있는 실시간 비율.
GetRealPhysicsFPS
물리가 현재 시뮬레이션되고 있는 초당 프레임 수를 반환합니다.
GetRealPhysicsFPS를 사용하여 악용자 방지
이 함수의 일반적인 사용은 악용자가 더 빠르게 이동하기 위해 로컬 물리 프레임 속도를 높이고 있는지 여부를 감지하는 것입니다.일반적으로 클라이언트의 GetRealPhysicsFPS에서 반환된 결과와 일반적인 상황에서 침해되지 않을 최대값(일반적으로 65 또는 70)을 비교하여 수행됩니다.이 제한이 위반되면 개발자는 Player:Kick() 함수를 사용하여 게임에서 그 Player 를 제거할 수 있습니다.이 연습이 때때로 효과적이지만 클라이언트 측 악용 방지 조치는 결코 100% 신뢰할 수 없다는 점을 기억해야 합니다.
반환
물리가 현재 시뮬레이션되고 있는 초당 프레임 수를 반환합니다.
코드 샘플
Speed exploiters commonly increase their local physics FPS in order to increase their character speed. This can be detected from a LocalScript by checking if the player's physics FPS is over the maximum:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end
GetServerTimeNow
GetServerTimeNow() 클라이언트의 서버에서 현재 시간에 대한 최선의 추정치를 반환합니다.이는 모든 클라이언트가 시간대나 로컬 시간과 상관없이 동일한 결과를 얻을 수 있기 때문에 동기화된 경험을 만드는 데 유용합니다.
이는 Unix 타임스탬프를 반환하며, 또는 와 함께 사용할 수 있는 것과 유사합니다.
이 함수에서 반환된 타임스탬프는 부드럽게 처리되어 다음과 같습니다: The timestamp returned by this function is smoothed so that:
- 단일적입니다; 값은 결코 줄어들지 않습니다.
- 로컬 시간과 동일한 속도로 0.6% 내에 이동합니다.
GetServerTimeNow() 은 DateTime.now() 에 비해 비용이 많이 들며, os.clock() 보다 정확하지 않으므로 올바른 실제 세계 시간에 이벤트가 시작되도록 하거나 일정 기간마다 조정하여 연속 이벤트를 동기화하는 데 사용해야 합니다.
이 함수는 서버에 의존하므로 연결되지 않은 클라이언트에서 호출하면 오류가 발생합니다.또한 이 함수는 서버에서 이러한 타이머를 추적하는 것과 비교할 때 안전하지 않으므로 시간 보상과 같은 것에는 적합하지 않습니다.
참조하세요:
- DistributedGameTime , 게임 시간 클록
반환
서버의 예상 Unix 타임스탬프.
JoinToOutsiders
이 함수는 부품의 표면과 지정된 조인 생성 모드에 따라 지정된 Parts 및 모든 접촉 부품 사이의 조인을 생성합니다.
이 함수는 부품의 표면과 평면 터치 표면 사이의 조인트를 생성하며, 부품의 표면과 지정된 조인트 생성 모드에 따라 다릅니다.
- 접착제, 스터드, 입구, 유니버셜, 접합, 그리고 부드러운 표면은 모두 접합 인스턴스를 생성합니다.
- 구체는 아무것에도 표면 접합하지 않습니다. 실린더의 둥근 측면은 표면 접합하지 않지만, 평면 끝 측면은 합니다.
첫 번째 매개 변수는 BaseParts 배열입니다.조인은 배열의 부품 사이에만 생성되고 배열에는 생성되지 않습니다.배열의 부품 사이에 조인트가 생성되지 않습니다.
두 번째 매개 변수는 조인이 생성되는 방법을 결정하는 Enum.JointCreationMode입니다.열거형 값을 전달하는 것, Enum.JointCreationMode.All 또는 Enum.JointCreationMode.Surface , 은 항상 참여와 동일한 행동을 갖습니다
이 함수는 사용자가 선택 항목을 이동을 완료하면 Roblox Studio 이동 도구에서 사용됩니다.Plugin:GetJoinMode() 및 Workspace:UnjoinFromOutsiders()와 함께 사용하여 사용자 지정 스튜디오 빌드 도구를 개발할 때 조인 기능을 유지할 수 있습니다.아래의 스니펫을 예로 참조하십시오.
local Workspace = game:GetService("Workspace")
-- 선택 사항 이동 완료; 조인 만들기
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- 선택 항목 이동 시작; 조인트 부수기
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
매개 변수
조인할 대상의 배열 BaseParts 입니다.
사용할 Enum.JointCreationMode 가 있습니다. Enum.JointCreationMode.All 또는 Enum.JointCreationMode.Surface 를 전달하면 항상 참여와 동일한 행동이 수행됩니다.
반환
PGSIsEnabled
게임에 PGS 물리학 솔버가 활성화되어 있으면 true를 반환합니다.
스크립트에서 액세스할 수 없는 것처럼 Workspace.PGSPhysicsSolverEnabledPGSIsEnabled 함수를 통해 개발자는 게임에 사용되는 물리 솔버를 알릴 수 있습니다.
반환
PGS 솔버가 활성화되어 있으면 참입니다.
UnjoinFromOutsiders
지정된 BaseParts와 다른 BaseParts 사이의 모든 관절을 깨뜨립니다.
이 함수는 BaseParts 배열을 필요로 합니다.참고, 조인은 이 중 BaseParts (서로) 사이에서 부서지지 않으며, 이 중 BaseParts 와 다른 BaseParts (배열에 없음) 사이에서만 부서집니다.
이 함수는 사용자가 선택 항목을 이동하기 시작할 때 Roblox Studio 이동 도구에서 사용됩니다.Plugin:GetJoinMode() 및 Workspace:JoinToOutsiders()와 함께 사용하여 사용자 지정 Studio 빌드 도구를 개발할 때 조인 기능을 유지할 수 있습니다.아래의 스니펫을 예로 참조하십시오.
local Workspace = game:GetService("Workspace")
-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- Started moving a selection; break joints
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
매개 변수
조인이 깨질 대상인 배열 BaseParts 입니다.
반환
ZoomToExtents
위치와 배율을 조정하여 를 표시하여 현재 에 있는 범위를 보여줍니다.
이 함수는 Roblox Studio의 이제 제거된 '확장으로 배율' 버튼에서 사용되었습니다.그러나 'Zoom To' (F 단축키) 기능과 비슷한 행동을 보여주지만 현재 선택된 개체가 아닌 Workspace의 범위를 표시합니다.
이 함수는 스크립트에서 사용할 수 없지만 명령줄 또는 플러그인에서 작동합니다.
반환
이벤트
PersistentLoaded
이 이벤트는 플레이어가 현재의 모든 영구 모델과 부분 없는 원자 모델을 모두 전송할 때마다 발생합니다.player 매개 변수는 적용 가능한 모든 인스턴스를 받은 플레이어를 나타냅니다.
경험 로드는 영구 로드 전에 발생하고, DataModel.Loaded 이벤트의 발사는 모든 영구 모델이 존재하는 것을 나타내지 않습니다.