플레이어 캐릭터가 '앉을' 수 있는 BasePart의 유형.캐릭터가 활성화된 좌석 개체에 터치하면 Weld를 통해 부품에 연결되고 기본 캐릭터 스크립트가 앉아있는 애니메이션을 재생합니다.
좌석은 어떻게 작동하나요?
Humanoid 및 BasePart 를 포함하는 모델이 'HumanoidRootPart'(일반적으로 플레이어 캐릭터)를 호출하면 의자와 부품 사이에 Weld 가 생성됩니다.C0 및 C1 속성은 캐릭터가 의자 위에 2스터드 용접되도록 구성되어 있습니다.이 접합은 'SeatWeld'라는 이름으로 지정되며 의자에 부모가 됩니다.
앉아있을 때 Seat.Occupant 속성은 자리에 '앉아있는' Humanoid 속성으로 설정됩니다.또한 인간형의 Humanoid.SeatPart 속성이 좌석으로 설정됩니다.
또한 캐릭터는 Seat:Sit() 함수를 사용하여 좌석에 강제로 앉도록 할 수도 있습니다.
캐릭터가 자리에서 나오는 방법은 두 가지입니다.플레이어가 점프하면 의자에서 제거됩니다.그러나 이는 예를 들어 의자 접합을 파괴하여 수동으로 수행할 수도 있습니다:
시트: FindFirstChild("SeatWeld"):Destroy()
노트 좌석에는 쿨타임(현재 3초)이 있으며 캐릭터당 좌석 기준입니다.즉, 캐릭터가 자리에서 나가면 3초 동안 동일한 자리에 앉을 수 없습니다.이 대기 시간 동작은 변경될 수 있으며 개발자가 의존해서는 안됩니다.
의자는 어떤 용도로 사용할 수 있나요?
의자는 명백한 것부터 더 비전통적인 것까지 다양한 용도를 가지고 있습니다.
- 프로그래밍할 필요 없이 의자나 벤치 생성
- 자동차와 같은 이동 개체에서 캐릭터가 '앉도록' 허용하여 주변에 튕겨나가지 않도록 하기
- Seat.Occupant 속성을 사용하여 자리에서 캐릭터가 제어하는 인터페이스 생성
코드 샘플
This code sample includes a demonstration of how the Seat.Occupant property can be used to track which player is sitting in a seat and when they sit down or sit up.
local Players = game:GetService("Players")
local seat = Instance.new("Seat")
seat.Anchored = true
seat.Position = Vector3.new(0, 1, 0)
seat.Parent = workspace
local currentPlayer = nil
local function onOccupantChanged()
local humanoid = seat.Occupant
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
if player then
print(player.Name .. " has sat down")
currentPlayer = player
return
end
end
if currentPlayer then
print(currentPlayer.Name .. " has got up")
currentPlayer = nil
end
end
seat:GetPropertyChangedSignal("Occupant"):Connect(onOccupantChanged)
요약
속성
좌석이 사용 가능한지 여부. 참으로 설정하면 좌석이 정상 부품으로 작동합니다.
자리에 앉아있는 휴머노이드.
개체의 전체 모양을 설정합니다.
부품이 물리적으로 이동할 수 없는지 여부를 결정합니다.
부품 조립의 각속도.
세계 공간에서 부품의 질량 중심.
부품 조립의 선형 속도.
부품 조립의 총 질량.
어셈블리의 루트 부분에 대한 참조.
부품이 조명에 대해 CastShadow와 유사하게 물리적으로 오디오 시뮬레이션과 상호작용할지 여부를 결정합니다.
부품의 뒷면 표면 유형을 결정합니다.
부품의 아래쪽 면에 대한 표면 유형을 결정합니다.
부품의 색상을 결정합니다.
세계에서 BasePart 의 위치와 방향을 결정합니다.
부품이 다른 부품과 충돌할 수 있는지 여부를 결정합니다.
부품이 공간 쿼리 작업 중에 고려되는지 여부를 결정합니다.
부품에서 Touched 및 TouchEnded 이벤트가 발생하는지 여부를 결정합니다.
부품이 그림자를 던지는지 여부를 결정합니다.
부품의 질량 중심이 위치한 세계 위치를 설명합니다.
부품의 충돌 그룹 이름을 설명합니다.
부품의 색상을 결정합니다.
부품의 현재 물리적 속성을 나타냅니다.
부품의 물리적 속성을 여러 가지 결정합니다.
부품과 조립에서 공기역학 힘을 활성화하거나 비활성화하는 데 사용됩니다.
물리 엔진에서 보는 BasePart의 실제 크기.
부품의 앞면 표면 유형을 결정합니다.
부품의 왼쪽 면의 표면 유형을 결정합니다.
로컬 클라이언트에만 표시되는 BasePart.Transparency의 배수를 결정합니다.
부품이 Studio에서 선택 가능한지 여부를 결정합니다.
부품의 질량, 밀도와 용량의 곱을 설명합니다. Describes the mass of the part, the product of its density and volume.
부품이 단단한 신체총 질량이나 중력에 기여하는지 여부를 결정합니다.
부품의 텍스처와 기본 물리적 속성을 결정합니다.
이름 의 MaterialVariant .
세계에서 부품의 회전을 설명합니다.
부품의 피벗 오프셋을 부품의 CFrame에서 지정합니다.
세계에서 부품의 위치를 설명합니다.
마지막으로 기록된 물리 업데이트 이후 시간.
부품이 하늘상자를 얼마나 반영하는지 결정합니다.
Resize() 메서드에서 허용하는 가장 작은 크기 변경을 설명합니다.
부품을 재설정할 수 있는 얼굴을 설명합니다.
부품의 오른쪽 면에 대한 표면 유형을 결정합니다.
어셈블리의 루트 부분을 결정하는 주 규칙.
세 축에 대한 부품의 회전 정도(도).
부품의 차원(길이, 너비, 높이)을 결정합니다.
부품의 상단 면에 대한 표면 유형을 결정합니다.
부품을 얼마나 볼 수 있는지 결정합니다(부품 불투명도의 반대).
메서드
지정된 Humanoid 으로 캐릭터를 의자에 앉히게 합니다.
어셈블리에 각진 펄스를 적용합니다.
조립의 center of mass에 임펄스를 적용하여 조립에 적용합니다.
지정된 위치에 임펄스를 조립에 적용합니다.
부품이 서로 충돌할 수 있는지 여부를 반환합니다.
부품의 네트워크 소유권을 설정할 수 있는지 확인합니다.
어떤 종류의 강성 조인으로 개체에 연결된 부품의 테이블을 반환합니다.
이 부분에 연결된 모든 조인 또는 제약 조건을 반환합니다.
Mass 속성의 값을 반환합니다.
이 부분의 네트워크 소유자인 현재 플레이어를 반환하거나 서버의 경우 nil 입니다.
게임 엔진이 이 부분에 대한 네트워크 소유자를 자동으로 결정하면 true를 반환합니다.
부품 집합의 기본 부분을 반환합니다.
이 부분과 교차하는 모든 BasePart.CanCollide 진실한 부품의 테이블을 반환합니다.
이 부품과 관련하여 지정된 위치에서 부품의 선형 속도를 반환합니다.
개체가 장소에 유지될 부품에 연결되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Studio 크기 조정 도구를 사용하는 것과 마찬가지로 개체의 크기를 변경합니다.
지정된 플레이어를 네트워크 소유자로 설정하여 이 및 모든 연결된 부품에 대해 네트워크 소유권을 부여합니다.
게임 엔진이 부품의 물리학을 처리할 클라이언트 또는 서버 중 하나를 동적으로 결정하게 합니다.
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품의 겹치는 기하학과 주어진 배열의 다른 부품에서 새로운 IntersectOperation를 생성합니다.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품에서 지정된 배열에 있는 부품의 기하학을 빼고 새로운 UnionOperation를 부품에서 만듭니다.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품에서 새로운 UnionOperation 를 생성하고, 지정된 배열에 있는 부품의 기하학을 더합니다.
PVInstance의 피벗을 가져옵니다.
피벗이 지금 지정된 PVInstance 에 위치하도록 모든 하위 요소 PVInstances 와 함께 변환하여 피벗이 지금 지정된 CFrame 에 위치합니다.
이벤트
이벤트가 BasePart에서 상속되었습니다물리적 이동의 결과로 부품이 다른 부품에 접촉하지 않게 되면 발생합니다.
물리적 이동의 결과로 부품이 다른 부품에 닿을 때 발생합니다.