PhysicsService

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
서비스

PhysicsService 주로 부품 세트가 다른 충돌 그룹의 부품과 충돌할 수 있는지 여부를 정의하는 충돌 그룹 에 대한 메서드를 포함합니다. 를 통해 충돌 그룹을 등록하고 그 부품의 속성을 충돌 그룹의 이름에 설정하여 부품을 할당할 수 있습니다.

충돌 그룹 간의 충돌 관계 생성, 삭제 및 수정은 서버 측 Scripts에 제한됩니다.

Studio 및 스크립트 내에서 사용 세부 정보는 충돌 필터링을 참조하십시오.

요약

메서드

속성

메서드

CollisionGroupSetCollidable

()

두 그룹 간의 충돌 상태를 설정합니다.이 메서드는 그룹 중 하나라도 등록되지 않으면 오류가 발생하므로, 이 호출을 하기 전에 PhysicsService:IsCollisionGroupRegistered()를 통해 각 그룹의 등록을 확인하는 것이 좋습니다.

매개 변수

name1: string
기본값: ""
name2: string
기본값: ""
collidable: boolean
기본값: ""

반환

()

CollisionGroupsAreCollidable

지정된 두 충돌 그룹이 충돌하는지 여부를 반환합니다.이 메서드는 기본 충돌 마스크가 모든 그룹과 충돌하기 때문에 그룹 중 하나가 등록되지 않은 경우에도 반환됩니다. true.

매개 변수

name1: string
기본값: ""
name2: string
기본값: ""

반환

GetMaxCollisionGroups

엔진이 지원하는 충돌 그룹의 최대 수를 반환합니다. 현재 값은 32입니다.


반환

GetRegisteredCollisionGroups

모든 플레이스충돌 그룹에 대한 정보가 있는 테이블을 반환합니다. 반환된 테이블의 각 값은 자체가 테이블이며 두 멤버가 포함되어 있습니다.


<th>유형</th>
<th>설명</th>
</tr>
</thead>
<tbody>
<tr>
<td>마스크</td>
<td>정수 integer</td>
<td>충돌 그룹의 마스크; 내부 사용에만 사용됩니다.</td>
</tr>
<tr>
<td>이름</td>
<td>문자열</td>
<td>충돌 그룹의 이름.</td>
</tr>
</tbody>
멤버

반환

IsCollisionGroupRegistered

충돌 그룹이 등록되었는지 확인합니다.PhysicsService:CollisionGroupSetCollidable()와 같은 등록되지 않은 충돌 그룹에 대한 오류를 발생시키는 메서드를 호출하기 전에 이 메서드를 호출하는 것이 좋습니다.

매개 변수

name: string
기본값: ""

반환

RegisterCollisionGroup

()

지정된 이름으로 새로운 충돌 그룹을 등록합니다. 이름은 "Default" 일 수 없습니다.

이 메서드는 작업 공간에 있는 BaseParts의 수에 따라 약간의 성능 오버헤드가 있으므로 스튜디오의 편집기를 통해 모든 충돌 그룹을 편집 시간에 등록하고 가능한 한 적게 UnregisterCollisionGroup()RenameCollisionGroup()을 호출하는 것이 좋습니다.

매개 변수

name: string
기본값: ""

반환

()

코드 샘플

This example demonstrates one basic use of collision groups. It assigns BallPart to "CollisionGroupBall" and DoorPart to "CollisionGroupDoor", then makes the two groups non-collidable using PhysicsService:CollisionGroupSetCollidable().

PhysicsService:RegisterCollisionGroup

local PhysicsService = game:GetService("PhysicsService")
local collisionGroupBall = "CollisionGroupBall"
local collisionGroupDoor = "CollisionGroupDoor"
-- Register collision groups
PhysicsService:RegisterCollisionGroup(collisionGroupBall)
PhysicsService:RegisterCollisionGroup(collisionGroupDoor)
-- Assign parts to collision groups
script.Parent.BallPart.CollisionGroup = collisionGroupBall
script.Parent.DoorPart.CollisionGroup = collisionGroupDoor
-- Set groups as non-collidable with each other and check the result
PhysicsService:CollisionGroupSetCollidable(collisionGroupBall, collisionGroupDoor, false)
print(PhysicsService:CollisionGroupsAreCollidable(collisionGroupBall, collisionGroupDoor)) --> false

RenameCollisionGroup

()

지정된 등록된 충돌 그룹의 이름을 변경하지만, 그룹을 사용하는 부품의 속성을 재명명하지는 않습니다.이 메서드의 첫 번째 인수는 그룹 이름을 변경하는 데 사용할 그룹 이름이고, 두 번째 인수는 그룹의 새 이름입니다.지정된 그룹이 존재하지 않으면 이 메서드는 아무 것도 하지 않습니다.새 이름의 명명 규칙은 그룹이 RegisterCollisionGroup()로 생성되는 것과 동일한 규칙을 따릅니다.

다음 상황에서 이 메서드는 런타임 오류를 발생시킵니다:

  • 둘 중 하나의 인수에 유효하지 않거나 비어 있는 이름이 제공됩니다.
  • 메서드는 클라이언트에서 호출됩니다.

이 메서드는 작업 공간에 있는 의 수에 따라 약간의 성능 오버헤드가 있으므로 스튜디오 편집기를 통해 모든 충돌 그룹을 편집 시간에 등록하고 가능한 한 자주 이름을 바꾸는 것이 좋습니다.

매개 변수

from: string
기본값: ""
to: string
기본값: ""

반환

()

UnregisterCollisionGroup

()

다음 동작으로 지정된 이름에 대한 충돌 그룹을 등록 취소합니다:

  • 유효하지 않은 이름이 제공되면 메서드는 아무 것도 하지 않습니다.
  • 예약된 이름 이 제공되면 메서드가 클라이언트에서 호출되면 오류가 발생합니다.
  • 충돌 그룹에서 제거될 때 일부가 있으면 해당 부품은 여전히 동일한 충돌 그룹 이름을 유지합니다.제거된 그룹의 물리적 동작은 정의되지 않으므로 제거된 그룹의 모든 부품을 다른 그룹으로 이동하는 것이 좋습니다(예: "Default" 그룹).

이 메서드는 작업 공간에 있는 BaseParts의 수에 따라 약간의 성능 오버헤드가 있으므로 스튜디오의 편집기를 통해 모든 충돌 그룹을 편집 시간에 등록하고 이 메서드를 가능한 한 적게 호출하는 것이 좋습니다.

매개 변수

name: string
기본값: ""

반환

()

이벤트