PhysicsService

사용되지 않는 항목 표시

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

만들 수 없음
서비스

PhysicsService 는 주로 충돌 그룹과 작동하는 메서드를 포함하는데, 충돌 그룹을 등록하는 것은 Class.PhysicsService:RegisterCollisionGroup()|RegisterCollisionGroup() 을 통해

충돌 그룹 간의 충돌 관계를 만들고 삭제하고 수정하는 것은 서버 사이드 Scripts 에 제한됩니다.

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

요약

메서드

속성

메서드

CollisionGroupSetCollidable

void

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

매개 변수

name1: string
name2: string
collidable: bool

반환

void

CollisionGroupsAreCollidable

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

매개 변수

name1: string
name2: string

반환

GetMaxCollisionGroups

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


반환

GetRegisteredCollisionGroups

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


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

반환

IsCollisionGroupRegistered

충돌 그룹이 등록되어 있는지 여부를 확인합니다. 충돌 그룹을 호출하는 메서드를 호출하기 전에 이 메서드를 호출하는 것이 좋습니다. 예를 들어 PhysicsService:CollisionGroupSetCollidable() 를 호출하는 메서드를 호출하는 것이 좋습니다.

매개 변수

name: string

반환

RegisterCollisionGroup

void

지정된 이름과 새로운 충돌 그룹을 등록합니다. 이름은 "Default"

작업 공간에 있는 BaseParts 수를 기반으로 이 메서드에 약간의 성능 오버헤드가 있으므로 스튜디오 Class.Edit 에서 모든 충돌 그룹을 등록하고 Class.

매개 변수

name: string

반환

void

코드 샘플

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

void

지정된 등록된 충돌 그룹을 이름 변경하지만, 하지 않습니다 그룹의 부품에 대한 CollisionGroup 속성의 이름을 변경합니다. 이

다음과 같은 경우 이 메서드에서 런타임 오류가 발생합니다:

  • 제공된 모든 이름 중 하나가 잘못되었거나 비어 있습니다.
  • 메서드는 클라이언트에서 호출됩니다.

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

매개 변수

from: string
to: string

반환

void

UnregisterCollisionGroup

void

다음과 같은 동작으로 충돌 그룹을 등록 해제 합니다.Unregisters the collision group for the given name, with the following behaviors:

  • 잘못된 이름을 제공하면 메서드는 작동하지 않습니다.
  • 예약 이름 "Default" 이 제공되면 클라이언트에서 메서드를 호출하는 경우 오류가 발생합니다.
  • 충돌 그룹에 있는 부품이 제거되면 해당 부품은 여전히 동일한 충돌 그룹 이름을 유지합니다. 부품이 제거된 그룹에 물리적 동작은 정의되지 않으므로 부품을 제거된 그룹으로 이동하여 다른 그룹으로 마이그레이션하십시오, 예를 들어 "Default" 그룹.

작업 공간에 있는 BaseParts 수를 기반으로 약간의 성능 오버헤드가 있기 때문에 이 메서드를 사용하는 것이 좋습니다. Studio 편집기 를 통해 모든 충돌 그룹을 등록하고 가능한 한 자주 호출하는 것이 좋습니다.

매개 변수

name: string

반환

void

이벤트