인간형 개체는 모델에게 캐릭터의 기능을 제공하는 특수 개체
R6
- 6개의 팔을 위해 6개의 부품을 사용하는 기본 캐릭터 리그입니다.
- Head 부품은 인간형이 되는 부품의 이름인 Torso 부품에 부착해야 하거나 즉시 인간형이 죽습니다.
- 바디 부품은 CharacterMesh 개체를 사용하여 적용됩니다.
- Class.Humanoid.LeftLeg 및 Class.Humanoid.RightLeg과 같은 특정 속성은 R6에서만 작동합니다.
R15
- R6보다 복잡하지만, 훨씬 유연하고 안정적입니다.
- 다리에 15개의 부품을 사용합니다.
- Head 부품은 인간형이 되는 부품 이름인 UpperTorso 또는 즉시 죽을 수 있습니다.
- 바디 부품은 직접 조립해야 합니다.
- 인간형의 내부에 있는 특수 NumberValue 개체를 사용하여 동적으로 크기를 조정할 수 있습니다.
- 인간형 개체는 각 손가락의 내부에 있는 Vector3Value 개체를 자동으로 만듭니다.
- Humanoid의 하위에 있는 NumberValue가 팔로잉중 하나인 경우, 크기 조정 기능을 제어하는 데 사용됩니다.
- 바디 깊이 조정
- 보디 높이 조정
- 바디 너비 조정
- 머리 크기 조정
코드 샘플
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)
요약
속성
모바일 기기플레이어로 장애물을 밟을 때 캐릭터가 자동으로 점프할지 여부를 설정합니다.
자동 회전은 인간형이 이동하는 방향으로 자동으로 회전하는지 여부를 설정합니다.AutoRotate sets whether or not the Humanoid will automatically rotate to face in the direction they are moving in.
활성화되면 AutoScalingEnabled로 인해 캐릭터의 크기가 인간의 자식 크기 변경에 대한 반응으로 변경됩니다.
인간 노이드의 관절이 Enum.HumanoidStateType.Dead 상태에서 부서지는지 여부를 결정합니다.
CameraSubject가 이 인간형에 설정된 경우 카메라의 주제 위치에 오프셋이 적용됩니다.
인간의 이름 및 체력 표시의 거리 동작을 제어합니다.
머리 위에 표시되는 휴머노이드의 텍스트를 설정합니다.
현재 Humanoid 위에 서 있는 Humanoid 에 대해 설명합니다. 만약 1>Class.Humanoid1> 가 아무것도 서 있지 않다면, 이 속성의 값은 4>Air4> 가 됩니다.
범위 [0, Humanoid.MaxHealth]에 있는 현재 인간형의 최대 체력을 설명합니다.
Class.Humanoid.DisplayDistanceType|DisplayDistanceType 속성과 함께 사용하여 인간 노이드의 체력 바가 표시될 수 있는 거리를 제어합니다.
인간의 체력 표시줄이 표시될 수 있는 경우 컨트롤.
Class.Humanoid.RootPart 이 땅에서 얼마나 멀리 떨어져 있는지 결정합니다.
true 는 위로 향상된 힘으로 점프합니다.
Class.Humanoid 점프의 높이를 제어합니다.
점프 시 Humanoid에 적용할 위로 힘을 결정합니다.
인간의 Health 의 최대 값.
인간형이 미끄러지지 않고 걸을 수 있는 최대 경사각.
Class.Humanoid 이 걸어가는 방향을 설명합니다.
Class.Humanoid.DisplayDistanceType 속성과 함께 사용되어 인간 이름이 표시되는 거리를 제어합니다.
인간의 이름 및 체력 표시줄이 벽 등의 다른 개체 뒤에 표시될 수 있는지 여부를 제어합니다.
Class.Humanoid 가 현재 Enum.HumanoidStateType.PlatformStanding 상태에 있는지 여부를 결정합니다.
뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 절대 뇌우 �
이 Humanoid가 레거시 R6 캐릭터 리그를 사용하는지 여부를 설명합니다.
참조: 인간형 뿌리 파트 개체의 인간oid.
현재 앉아있는 자리에 대한 참조, Humanoid 있으면.
현재 Humanoid가 앉아 있는지 여부를 설명합니다.
Class.Player 가 마지막으로 클릭한 세계에서 3D 위치를 설명하는 데 사용됩니다. Humanoid 을 사용하는 경우).
Class.Humanoid.JumpHeight|JumpHeight (틀린) 또는 Humanoid.JumpPower (옳은) 속성이 사용되는지 여부를 결정합니다.
인간의 최대 이동 속도를 스터드당 초당 단위로 설명합니다.
인간형 위치에 도달하려는 부품에 대한 참조.
Class.Humanoid:MoveTo() 이후 호출한 위치에 도달하려는 인간 위치는 만듭니다.
메서드
부모에게 지정된 Accessory 를 부착합니다.
인간형의 캐릭터에 있는 Motor6D 개체를 조인하여 트리의 Attachment 공동체를 구성합니다.
Class.Humanoid 를 설정하여 주어진 Enum.HumanoidStateType 에 입력합니다.
현재 인형의 부모가 착용하고 있는 Accessory 개체 배열을 반환합니다.
현재 모양을 설명하는 인간 oid의 캐시된 복사본을 반환합니다. HumanoidDescription
이 함수에 바디 부품을 패스하십시오 (바디 부품은 인간형의 형제이어야 하고 모델의 자식이어야 함) 을 가져 Enum.BodyPartR15 의 Part 을 얻습니다.
Class.Part 에 대한 지정된 Part 열거형을 반환합니다.
현재 Enum.HumanoidStateType 인 인간 로이드를 반환합니다.
Class.Humanoid에 대해 Humanoid가 활성화되어 있는지 여부를 반환합니다.
Class.Humanoid 가 지정된 방향으로 걷게 합니다.
Class.Humanoid 를 사용하여 주어진 위치로 걸어가려면 Humanoid.WalkToPoint 및 Humanoid.WalkToPart 속성을 설정하여 시도합니다.
Class.Accessory 개체를 모두 제거합니다.
인간 형태 부품을 다른 부품으로 동적으로 교체합니다.
지정한 Enum.HumanoidStateType에 대해 Humanoid가 활성화되는지 여부를 설정합니다.
Class.Humanoid 의 내부 메커니즘을 이해하면 Humanoid 를 더 작게 만들 수 있습니다. Class.Humanoid 는 보호되지 않은 상태에서 1>Class.ForceField1> 에 의해 크기가 조정되지 않는 경우 주기적으로 작은 값을 생성합니다.
- ApplyDescription(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
캐릭터가 패스된 HumanoidDescription 와 일치하게 보입니다.
- ApplyDescriptionReset(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
외부 변경 사항에도 불구하고 캐릭터의 모양이 HumanoidDescription 와 일치합니다.
감정 표현을 플레이하고 성공적으로 실행된 경우 반환합니다.
이벤트
속도가 Humanoid 가 올라갈 때 화재됩니다.
클래스 Humanoid가 죽을 때 발생합니다.
Class.Humanoid 가 FallingDown``Enum.HumanoidStateType에 들어가거나 떠나면 화재가 발생합니다.
Class.Humanoid 가 Freefall 을 입력하거나 Enum.HumanoidStateType 을 떠나면 화재가 발생합니다.
Class.Humanoid 가 GettingUp``Enum.HumanoidStateType에 들어가거나 떠나면 화재가 발생합니다.
Class.Humanoid.Health 변경(또는 Humanoid.MaxHealth 설정) 시 발생합니다.
Class.Humanoid 가 Jumping``Enum.HumanoidStateType에 들어가고 나가면 화재가 발생합니다.
Class.Humanoid 가 목표를 선언한 목표에 도착하면 화재가 발생합니다.
Class.Humanoid 가 PlatformStanding 을 입력하거나 떠나면 화재가 발생합니다. Enum.HumanoidStateType 을 입력합니다.
Class.Humanoid 가 Ragdoll 을 입력하거나 떠나면 화재가 발생합니다. Enum.HumanoidStateType 입니다.
속도가 Humanoid 가 변경되는 속도에 맞춰 화면이 표시됩니다.
Class.Humanoid 또는 Seat 또는 VehicleSeat 또는 1>Class.VehicleSeat1> 중 하나에 앉거나 일어났을 때 발생합니다.
상태가 변경된 경우 Humanoid 을 발사합니다.
Class.Humanoid:SetStateEnabled() 가 Humanoid에 호출될 때 발생합니다.
Class.Humanoid가 StrafingNoPhysics``Enum.HumanoidStateType에 들어가거나 떠나면 화재가 발생합니다.
인간의 한 팔이 다른 Class.BasePart 와 접촉하면 화재가 발생합니다.
속성
AutoJumpEnabled
AutoJumpEnabled는 Humanoid 가 향하는 장애물을 자동으로 점프하려는지 여부를 설정합니다.
현재 이 속성은 다음과 같은 조건이 충족될 때만 작동합니다.
- 인간형의 캐릭터 모델은 Player.Character의 Class.Player입니다.
- 문제인 플레이어는 터치 제어사용하고 있습니다.
플레이어의 캐릭터가 생성되면 속성의 값이 플레이어의 Player.AutoJumpEnabled 속성과 일치합니다. 이는 다시 StarterPlayer.AutoJumpEnabled 속성과 일치합니다.
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- Update button text
if player.AutoJumpEnabled then
button.Text = "Auto-Jump is ON"
else
button.Text = "Auto-Jump is OFF"
end
-- Reflect the property in the player's character, if they have one
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- Toggle auto-jump
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- Update everything else
update()
end
button.Activated:Connect(onActivated)
update()
AutoRotate
자동 회전 속성은 인간이 이동하는 방향으로 자동으로 회전하는지 여부를 설명합니다. 이 속성을 설정하면 캐릭터 모델이 인간이 주변을 돌리는 방향으로 자동으로 회전하기 시작합니다. 이 속성을 설정하면 캐릭터 모델이 현재 회전 방향으로 고정되어 있지
캐릭터 모델이 플레이어의 캐릭터가 되면 인간형의 회전은 UserGameSettings의 RotateType 속성에 의해 영향을 받습니다.
AutoRotate 속성이 설정된 경우 RotateType 속성은 인간형의 회전에 다음과 같은 효과를 가집니다.
<tbody><tr><td>이동 관계</td><td /><td /></tr><tr><td>카메라 관계</td><td>캐릭터가 카메라의 방향으로 회전합니다.</td><td>플레이어는 카메라를 첫 번째 사람 시점으로 확대하거나 쉬프트 잠금 모드에 있습니다.</td></tr></tbody>
회전 유형 | 동작 | 컨텍스트 |
---|
코드 샘플
local button = script.Parent
local enabled = true
local ON_COLOR = BrickColor.Green()
local OFF_COLOR = BrickColor.Red()
local function touchButton(humanoid)
if enabled then
enabled = false
button.BrickColor = OFF_COLOR
if humanoid.AutoRotate then
print(humanoid:GetFullName() .. " can no longer auto-rotate!")
humanoid.AutoRotate = false
else
print(humanoid:GetFullName() .. " can now auto-rotate!")
humanoid.AutoRotate = true
end
task.wait(1)
button.BrickColor = ON_COLOR
enabled = true
end
end
local function onTouched(hit)
local char = hit:FindFirstAncestorWhichIsA("Model")
if char then
local humanoid = char:FindFirstChildOfClass("Humanoid")
if humanoid then
touchButton(humanoid)
end
end
end
button.Touched:Connect(onTouched)
button.BrickColor = ON_COLOR
AutomaticScalingEnabled
인간형 자식 크기 값은 BodyDepthScale, BodyHeightScale, BodyProportionScale, 1> BodyTypeScale1>, 4> BodyWidthScale4>, 7> HeadScale7> 을 포함합니다. 이 중
CameraOffset
CameraOffset 속성은 카메라의 주제 위치에 대한 오프셋을 지정하며 이 Camera.CameraSubject 는 카메라에 설정되어 있습니다.
오브젝트 공간에 대해 적용되는 오프셋은 인간의 인간oidRootPart 의 방향에 대해 적용됩니다. 예를 들어, 오프셋 Vector3 값의 (0, 10, 0) 오프셋은 플레이어의 카메라를 10 스터드 위로 조정합니다.
코드 샘플
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)
DisplayDistanceType
DisplayDistanceType 속성은 인간의 이름 및 체력 표시의 거리 동작을 제어합니다. 이 속성은 세 가지 값을 사용하여 지정할 수 있는 Enum.HumanoidDisplayDistanceType 열을 사용하여 설정됩니다. 이 속성은 사용 가능한 세 가지 값을 사용하여 설정됩니다:
- NameDisplayDistance 및 NameDisplayDistance 범위 내의 다른 인간의 이름/상태를 볼 때 인간은 자신의 HealthDisplayDistance 및 1>HealthDisplayDistance1> 범위 내에서 다른 인간의 이름/상태를 볼 수 있습니다.
- Enemy.HumanoidDisplayDistanceType|Subject로 설정되면 인간은 자신의 이름과 건강 표시를 통해 완전한 제어 를 가지고 있습니다. 이 값은 NameDisplayDistance 및 1>HealthDisplayDistance1>를 통해 설정됩니다.
- Entity.HumanoidDisplayDistanceType|None로 설정하면 인간의 이름과 체력 표시 줄이 어떤 경우에도 나타나지 않습니다.
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
코드 샘플
local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100
DisplayName
DisplayName 는 인간형의 이름 표시를 표시할 때 인간형의 이름을 결정하는 속성입니다. 기본적으로 새로운 인간형은 빈 문자열의 값을 가질 것입니다. 만약 DisplayName가 빈 문자열이라면, 인간형의 이름 표시는 기본적으로 인간형의 부모의 이름 속성에 대
플레이어 캐릭터 로드 중
플레이어가 캐릭터를 로드할 때, 엔진이 자동으로 또는 LoadCharacter() 를 통해 생성된 인간형이 플레이어의 DisplayName 속성에 설정된 인간형의 속성을 가집니다.
스타터 캐릭터 및 스타터 인간형
Class.Humanoid라는 이름의 StarterHumanoid 가 StarterPlayer 에
EvaluateStateMachine
FloorMaterial
이 속성은 현재 Enum.Material 위에 서 있는 Humanoid 에 대해 설명합니다. 이 속성은 일반적인 Parts 및 2>Class.Terrain2> 복셀과 작동합니다.
아래 코드 샘플은 이 속성이 Object:GetPropertyChangedSignal() 를 사용하여 변경될 때 어떻게 들을 수 있는지 보여줍니다. 인간형이 서 있는 재료가 변경될 때, 새로운 재료가 서 있는 것을 나타내는 메시지를 표시합니다.
local Humanoid = route.to.humanoid
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
print("New value for FloorMaterial: " .. tostring(Humanoid.FloorMaterial))
end)
동굴
- Class.Humanoid가 바닥에 있지 않으면 이 속성의 값이 Air로 설정됩니다.
- 열거형 속성에 공백 값이 없으면 이런 오류가 발생합니다.
- 이 경우 부품에 재료가 공기로 설정된 경우 부품을 사용하지 않도록 하는 것이 좋습니다. 그러나 실제로는 부품에서 재료를 사용하지 않도록 하는 것이 좋습니다.
- Class.Humanoid의 캐릭터 모델은 바닥과 충돌해야 하거나 감지되지 않습니다.
- Class.Humanoid가 이 속성으로 수영하는지 여부를 테스트할 수 없습니다. 대신 Humanoid:GetState() 함수를 사용해야 합니다.
Health
이 속성은 Humanoid의 현재 상태를 나타냅니다. 값은 0에서 MaxHealth 사이의 범위에 제한됩니다. 만약 인간이 죽으면 이 속성은 계속해서 0으로 설정됩니다.
Class.Humanoid:TakeDamage()|TakeDamage() 함수를 사용하여 속성을 직접 설정하는 대신 Health에서 하위를 뺄 수 있습니다.
체력 회복
기본적으로 패시브 헬스 회복 스크립트는 인간형에 자동으로 삽입됩니다. 이렇게 하면 죽지 않은 플레이어 캐릭터가 각 초당 MaxHealth의 1%를 재생합니다. 이 재생 행동을 비활성화하려면
체력 표시줄 표시
Class.Humanoid.MaxHealth|MaxHealth 보다 작은 경우, 경험 내에 건강 바가 표시됩니다. 건강 바의 표시 행동은 MaxHealth 및 HealthDisplayDistance 에 따라 다릅니다.
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
사망
캐릭터의 체력이 0에 도달하면 Humanoid가 자동으로 Enum.HumanoidStateType.Dead 상태로 전환됩니다. 이 상태에서 Health는 0에 잠겨 있지만, 죽
HealthDisplayDistance
이 속성은 DisplayDistanceType 속성과 함께 사용되어 인간형의 체력 바가 표시되는 거리를 제어합니다.
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
HealthDisplayType
이 속성은 인간의 체력 표시 바가 표시될 수 있는 경우 설정됩니다. 기본적으로 이 속성은 인간의
이 속성은 특정 거리에서 헬스 바를 흐리게 하는 인간 노이드의 HealthDisplayDistance 속성에 독립적으로 작동합니다. 만약 Humanoid.HealthDisplayType|HealthDisplayType
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
HipHeight
Class.Humanoid.RootPart|RootPart 이 있는 지면 아래에서 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간이 서 있을 때 인간
R15 리그에서 적절한 슬라이드 높이는 사전 설정으로 슬라이드 높이가 RootPart 이 올바른지 확인하기 위해 사용되지 않습니다. 다리의 높이는 사용되지 않습니다. 전체 인간형 높이는 다음 수식에 설명될 수 있습니다:
Height = (0.5 * RootPart.Size.Y) + HipHeight
R6 리그에 대해 HipHeight 대신 상대적인 오프셋을 설명합니다. 인간 모양의 높이는 다음 수식에 설명될 수 있습니다:
Height = LeftLeg.Size.Y + (0.5 * RootPart.Size.Y) + HipHeight
Jump
Class.Humanoid 클래스를 사용하는 경우 Class.Humanoid 클래스를 사용하는 경우 Class.Humanoid.JumpPower 또는 Class.Humanoid.JumpHeight 값에 따라 위로 이동 하거나 1> Class.Humanoid.UseJumpPower1> 의
JumpHeight
스터드 단위의 Humanoid 점프의 높이에 대한 제어를 제공합니다. 이 속성의 시작 값은 StarterPlayer.CharacterJumpHeight 의 값으로, 기본적으로 7.2입니다.
이 속성을 0으로 설정하면 인간형이 점프하는 것을 효과적으로 방지할 수 있지만 Class.Humanoid:SetStateEnabled() 를 통해 점프를 비활성화하는 것이 좋습니다.
이 속성은 속성 창에서만 표시되며, Humanoid.UseJumpPower 가 거짓으로 설정되지 않은 경우에만 관련이 있습니다(대신 2>Class.Humanoid.JumpPower2> 가 사용됩니다).
JumpPower
Class.Humanoid 을 점프할 때 적용할 위로 힘을 결정합니다. 이 속성의 시작 값은 StarterPlayer.CharacterJumpPower 의 값으로 설정되며 기본적으로 50이며 1000 사이에 제한됩니다. 점프는 Class.
이 속성을 0으로 설정하면 인간형이 점프하는 것을 효과적으로 방지할 수 있지만 Class.Humanoid:SetStateEnabled() 를 통해 점프를 비활성화하는 것이 좋습니다.
이 속성은 속성 창에서만 표시되며, Humanoid.UseJumpPower 가 진정한로 설정된 경우에만 유용하게 사용됩니다(대신, 2>Class.Humanoid.JumpHeight2> 만 사용됩니다).
MaxHealth
인간의 Health 의 최대 값.
이 속성의 값은 Health 속성과 함께 사용되어 기본 건강 바 표시를 크기조정합니다. 인간의 Health 가 MaxHealth 에 도
MaxSlopeAngle
이 속성은 인간이 오르기수 있는 최대 경사각을 결정합니다. 경사각이 인간의 최대 경사각보다 크면 인간이 내려다 경사각을 미끄러집니다.
캐릭터가 생성되면 이 속성은 StarterPlayer.CharacterMaxSlopeAngle 값에 따라 설정됩니다.
이 속성의 값은 0°와 89° 사이의 값에 제한됩니다. 기본적으로 89°이므로 인간형은 쉽게 원하는 경사를 올라갈 수 있습니다.
코드 샘플
local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30
MoveDirection
MoveDirection 는 단위 벡터 또는 길이 벡터로 표시되는 방향을 설명하는 읽기 전용 속성입니다. 방향은 세계 공간에서 설명됩니다.
이 속성은 읽기 전용이므로 Script 또는 LocalScript 에서는 설정할 수 없습니다.
코드 샘플
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)
NameDisplayDistance
이름 표시 거리 개 는 인간 이름이 표시될 수 있는 거리를 제어하기 위해 Humanoid.DisplayDistanceType 속성과 함께 사용됩니다.
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
NameOcclusion
인간의 이름 및 체력 표시 줄이 벽 또는 다른 개체 뒤에 표시되는지 여부를 제어합니다. 이 속성은 Enum.NameOcclusion 값이며 모든 이름, 적군 이름 또는 완전히 끊임 표시를 구성하여 표시할 수 있습니다.
Class.Players.LocalPlayer|LocalPlayer 에 Humanoid 가 없는 경우 이 속성은 주제에 적용되지 않고 Humanoid 만 적용됩니다.
캐릭터 이름/체력 표시에 대한 자세한 내용은 캐릭터 이름/체력 표시를 참조하십시오.
코드 샘플
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.NamOcclusion = Enum.NameOcclusion.OccludeAll
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
PlatformStand
Class.Humanoid 가 현재 Enum.HumanoidStateType.PlatformStanding 상태에 있는지 여부를 결정합니다. 트루면 인간이 자유 낙하하고 이동할 수 없는 상태에 있습니다. 이 상태는 앉기와 비슷하지만 점프하면 인간이 상태에서 해제됩니다.
RequiresNeck
머리를 제거하거나 연결을 해제하면 플레이어가 Character|character 죽는 동작을 비활성화하도록 개발자에게 허용합니다. 이 속성은 기본적으로 true로 설정됩니다.
RigType
RigType 은 레거시 R6 캐릭터 리그를 사용하는지 여부를 설명합니다. Humanoid 캐릭터 리그를 사용하는지는 여부를 설명하지 않습니다.
R6 리그는 6개의 가시적 Parts 를 사용하지만 R15 리그는 15개의 가시적 Parts 를 사용합니다. R15 리그는 관절이 더 많기 때문에 애니메이션할 때 훨씬 더 유연합니다.
이 속성을 잘못 설정하면 Humanoid 가 올바르게 작동하지 않습니다. 예를 들어, R15의 RigType이 R6로 설정되면 Humanoid 는 R15
RootPart
참조: HumanoidRootPart 개체, Humanoid 의 인간oid 이동을 제어하는 3D 세계를 통해 표시되는 인간oid의 뿌리 드라이빙 부분. 이 부분은 일반적으로 보이지 않습니다.
플레이어 캐릭터의 경우 루트 파트 는 Model.PrimaryPart 모델의 Player.Character 와 동일합니다.
SeatPart
SeatPart는 현재 앉아 있는 자석의 참조입니다, 있으면. 이 속성의 값은 Humanoid 또는 Seat 일 수 있습니다. 자석이 현재 자리에 앉아 있지 않으면 VehicleSeat 이 됩니다.
참고:
- Class.Humanoid가 현재 앉아 있는지 여부를 설명하는 부울에는 Humanoid.Sit를 참조하십시오.
Sit
Sit 속성은 Humanoid 가 현재 앉아 있는지 여부를 나타내는 부울입니다. Humanoids 는 이 속성의 값을 참조하여 앉아 있는 상태로 강
참고:
- Class.Humanoid.SeatPart 속성을 사용하여 VehicleSeat 또는 Humanoid 에 앉은 1>Class.Humanoid1> 을 얻을 수 있습니다.
- Class.Humanoid.Seated 이벤트에 연결하여 인간형 위치를 감지할 수 있습니다.
TargetPoint
사용하지 마십시오. 이 속성은 완전히 중단된 실험 모드에서만 작동합니다.
이 속성은 이 Player 를 조종하는 것은 Humanoid 를 마지막으로 클릭한 위치에 대한 3D 위치를 설명합니다. 이 Tool 는 장착되어 있습니다.
이 속성은 클래식 도구에서 주로 사용하여 인간이 도구를 활성화할 때 인간이 대상을 선택하는지 결정하기 위해 사용됩니다. NPC에게 클래식 로켓 발사기를 제공하고 대상점 을 설정한 다음 도구의 Tool:Activate() 함수를 호출하면 NPC가 대상점
UseJumpPower
캐릭터가 생성되면 이 속성은 StarterPlayer.CharacterUseJumpPower의 값에 따라 설정됩니다. 기본적으로 이 값은 true입니다.
점프 시 이 설정을 트루로 유지하면 Humanoid.JumpHeight 값이 사용되어 인간 점프를 해당 높이로 보장합니다. 이 설정을 틀로 유지하면 Humanoid.JumpPower 값이 위로 압력을 적용합니다.
WalkSpeed
이 속성은 Humanoid 가 초당 스터드 기준 속도로 걷기수 있는 정도를 설명합니다. 기본적으로 플레이어 캐릭터가 16 스터드 이동할 수 있는 방향을 모든 방향으로 걸을 수 있는 플레이어 캐릭터의 최대 속도입니다.
노트
WalkToPart
WalkToPart는 인간형이 도달하려는 부분을 참조합니다. 이 속성은 일반적으로 인간형의 Humanoid:MoveTo() 함수의 두 번째 인수로 설정됩니다.
WalkToPart가 설정되고 인간이 부품에 액티브하게 도달하려 시도하면 벡터3 목표를 업데이트하여 부품의 위치를 유지하고, 부품의 번역에 대한 개체 공간을 대비하여 Humanoid.WalkToPoint를 번역합니다.
이를 Lua에서 다음과 같이 설명할 수 있습니다.
goal = humanoid.WalkToPart.CFrame:pointToObjectSpace(humanoid.WalkToPoint)
동굴
- WalkToPart의 값을 설정하면 부품 후에 인간형 시작을 만드는 것이 충분하지 않습니다.
- WalkToPoint의 값이 변경되면 인간형을 시작하여 목표에 도달하려는 시도를 시작합니다.
- 이는 미래에 변경될 수 있습니다.
- 인간oid의 목표 상태는 8초 후에 만료되며 목표에 도달하지 않으면 목표 상태가 됩니다.
- 이렇게 하면 NPC가 Humanoid.MoveToFinished 발사를 기다리는 동안 갇혀지지 않습니다.
- 이 일이 발생하지 않도록 이동하기를 반복해야 합니다.
WalkToPoint
WalkToPoint는 인간형의 이동 경로를 설명하는 3D 위치를 설명하는 인간 이동 경로 함수의 하위에 있는 인간 이동 경로 인식 기능을 설명합니다.WalkToPoint describes the 3D position in space that a humanoid is trying to reach, after having been prompted to do so by the Humanoid's Humanoid:MoveTo() function.
인간의 Humanoid.WalkToPart 가 설정되면 목표는 부품 위치 및 회전과 관련하여 워크토포인트 상대를 변환하여 설정됩니다. WalkToPart 가 설정되지 않으면 인간은 직접 워크토포인트에 지정된 3D 위치에 도달하려고 시도합니다.
동굴
- WalkToPoint의 값은 인간형이 시작하는 데 다른 값으로 변경해야 합니다.
- 인간형 로봇을 0,0,0 로 이동하려면 인간형의 MoveTo 함수를 사용해야 합니다.
- 이는 미래에 변경될 수 있습니다.
- 인간oid의 목표 상태는 8초 후에 만료되며 목표에 도달하지 않으면 목표 상태가 됩니다.
- 이렇게 하면 NPC가 Humanoid.MoveToFinished 발사를 기다리는 동안 갇혀지지 않습니다.
- 이 일이 발생하지 않도록 이동하기를 반복해야 합니다.
코드 샘플
local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)
메서드
AddAccessory
이 메서드는 지정된 Accessory 을 인간형의 부모에 부착합니다.
이 메서드가 호출될 때, Accessory 는 장신구부모에서
필요한 Attachment 를 찾을 수 없으면 인간형의 부모에 대해 Accessory 가 부모로 남아 있지만 착용하지 않습니다.
일반적으로 액세서리 접합은 서버에서 생성되지만, 특정 조건에 따라 클라이언트에서 생성될 수 있습니다. 이 경우 AddAccessory() 클라이언트 측 호출을 사용하여 원하는 결과를 반드시 작품수
매개 변수
반환
코드 샘플
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local clockworksShades = Instance.new("Accessory")
clockworksShades.Name = "ClockworksShades"
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1.6, 1)
handle.Parent = clockworksShades
local faceFrontAttachment = Instance.new("Attachment")
faceFrontAttachment.Name = "FaceFrontAttachment"
faceFrontAttachment.Position = Vector3.new(0, -0.24, -0.45)
faceFrontAttachment.Parent = handle
local mesh = Instance.new("SpecialMesh")
mesh.Name = "Mesh"
mesh.Scale = Vector3.new(1, 1.3, 1)
mesh.MeshId = "rbxassetid://1577360"
mesh.TextureId = "rbxassetid://1577349"
mesh.Parent = handle
humanoid:AddAccessory(clockworksShades)
BuildRigFromAttachments
이 메서드는 Motor6D 공동체의 트리를 Humanoid 위해 조인하는 트리로 조인합니다. Motor6D 공동체는 1> Class.Animation|Animations1>의 플레이백을 위해 필요합니다.
인간의 RootPart 에서 시작하여 현재 부품의 모든 Attachments 부모를 수집합니다. 그��
Humanoid:BuildRigFromAttachments() 는 또한 캐릭터를 조정하고 바디 색상을 설정합니다.
반환
코드 샘플
local function createJoint(jointName, att0, att1)
local part0, part1 = att0.Parent, att1.Parent
local newMotor = part1:FindFirstChild(jointName)
if not (newMotor and newMotor:IsA("Motor6D")) then
newMotor = Instance.new("Motor6D")
end
newMotor.Name = jointName
newMotor.Part0 = part0
newMotor.Part1 = part1
newMotor.C0 = att0.CFrame
newMotor.C1 = att1.CFrame
newMotor.Parent = part1
end
local function buildJointsFromAttachments(part, characterParts)
if not part then
return
end
-- first, loop thru all of the part's children to find attachments
for _, attachment in pairs(part:GetChildren()) do
if attachment:IsA("Attachment") then
-- only do joint build from "RigAttachments"
local attachmentName = attachment.Name
local findPos = attachmentName:find("RigAttachment")
if findPos then
-- also don't make double joints (there is the same named
-- rigattachment under two parts)
local jointName = attachmentName:sub(1, findPos - 1)
if not part:FindFirstChild(jointName) then
-- try to find other part with same rig attachment name
for _, characterPart in pairs(characterParts) do
if part ~= characterPart then
local matchingAttachment = characterPart:FindFirstChild(attachmentName)
if matchingAttachment and matchingAttachment:IsA("Attachment") then
createJoint(jointName, attachment, matchingAttachment)
buildJointsFromAttachments(characterPart, characterParts)
break
end
end
end
end
end
end
end
end
local function buildRigFromAttachments(humanoid)
local rootPart = humanoid.RootPart
assert(rootPart, "Humanoid has no HumanoidRootPart.")
local characterParts = {}
for _, descendant in ipairs(humanoid.Parent:GetDescendants()) do
if descendant:IsA("BasePart") then
table.insert(characterParts, descendant)
end
end
buildJointsFromAttachments(rootPart, characterParts)
end
local humanoid = script.Parent:WaitForChild("Humanoid")
buildRigFromAttachments(humanoid)
local AssetService = game:GetService("AssetService")
local InsertService = game:GetService("InsertService")
local MarketplaceService = game:GetService("MarketplaceService")
local PACKAGE_ASSET_ID = 193700907 -- Circuit Breaker
local function addAttachment(part, name, position, orientation)
local attachment = Instance.new("Attachment")
attachment.Name = name
attachment.Parent = part
if position then
attachment.Position = position
end
if orientation then
attachment.Orientation = orientation
end
return attachment
end
local function createBaseCharacter()
local character = Instance.new("Model")
local humanoid = Instance.new("Humanoid")
humanoid.Parent = character
local rootPart = Instance.new("Part")
rootPart.Name = "HumanoidRootPart"
rootPart.Size = Vector3.new(2, 2, 1)
rootPart.Transparency = 1
rootPart.Parent = character
addAttachment(rootPart, "RootRigAttachment")
local head = Instance.new("Part")
head.Name = "Head"
head.Size = Vector3.new(2, 1, 1)
head.Parent = character
local headMesh = Instance.new("SpecialMesh")
headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
headMesh.MeshType = Enum.MeshType.Head
headMesh.Parent = head
local face = Instance.new("Decal")
face.Name = "face"
face.Texture = "rbxasset://textures/face.png"
face.Parent = head
addAttachment(head, "FaceCenterAttachment")
addAttachment(head, "FaceFrontAttachment", Vector3.new(0, 0, -0.6))
addAttachment(head, "HairAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "HatAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "NeckRigAttachment", Vector3.new(0, -0.5, 0))
return character, humanoid
end
local function createR15Package(packageAssetId)
local packageAssetInfo = MarketplaceService:GetProductInfo(packageAssetId)
local character, humanoid = createBaseCharacter()
character.Name = packageAssetInfo.Name
local assetIds = AssetService:GetAssetIdsForPackage(packageAssetId)
for _, assetId in pairs(assetIds) do
local limb = InsertService:LoadAsset(assetId)
local r15 = limb:FindFirstChild("R15")
if r15 then
for _, part in pairs(r15:GetChildren()) do
part.Parent = character
end
else
for _, child in pairs(limb:GetChildren()) do
child.Parent = character
end
end
end
humanoid:BuildRigFromAttachments()
return character
end
local r15Package = createR15Package(PACKAGE_ASSET_ID)
r15Package.Parent = workspace
ChangeState
이 함수는 Humanoid 가 지정된 Enum.HumanoidStateType에 들어가게 합니다, 현재 Humanoid 가 수행하고 있는 활동을 설명합니다.
특정 상태에 대한 자세한 내용은 Enum.HumanoidStateType 페이지를 참조하십시오, 왜냐하면 일부는 부적절한 이름을 가지고 있습니다. 예를 들어, Enum.HumanoidStateType.Running 는 인간의 다리가 지상에 있는 상태를 설명하며, 잠시 정지할 때 포함됩니다.
Class.Humanoid의 기본 동작 때문에 일부 상태가 설정될 때 자동으로 변경됩니다. 예를 들어:
- 인간이 물에 없을 때 상태를 Enum.HumanoidStateType.Swimming로 설정하면 자동으로 Enum.HumanoidStateType.GettingUp로 설정됩니다.
- 사용되지 않으므로 상태를 Enum.HumanoidStateType.PlatformStanding로 설정하면 인간 상태가 자동으로 Enum.HumanoidStateType.Running로 설정됩니다.
또한 Humanoid:SetStateEnabled() 를 참조하여 특정 상태를 활성화하거나 비활성화하고 Humanoid:GetState() 를 사용하여 현재 상태를 가져옵니다.
매개 변수
Class.Humanoid 이 수행할 enum.humanoidstateType입니다.
반환
코드 샘플
local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)
EquipTool
이 함수는 Humanoid 가 지정된 Tool 를 장착하게 합니다.
아래 예시에서는 Player 가 도구를 장착하는 Workspace 를 지정한 Tool 이라는 이름의 도구를 장착하게 합니다.
local Players = game:GetService("Players")local player = Players:FindFirstChildOfClass("Player")if player and player.Character thenlocal humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal tool = workspace:FindFirstChild("Tool")if tool thenhumanoid:EquipTool(tool)endendend
이 함수가 호출될 때, 인간은 현재 장착하고 있는 모든 Tools 을 자동으로 해제합니다.
장착되더라도 Tools 의 경우 Tool.RequiresHandle 가 있지 않으면 이 함수를 사용하여 장착하더라도 기능하지 않습니다. 이 함수를 사용하여 장착하더라도 기능하지 않으면 이 함수를 사용하지 않도록 하십시오.
또한 참조하십시오.
- 도구를 제거하려면 Humanoid:UnequipTools()를 사용하십시오
매개 변수
반환
GetAccessories
이 함수는 현재 인간의 부모가 착용하고 있는 Accessory 개체의 배열을 반환합니다. 모든 같은 Accessory 개체가 포함되지만, 부모가 부착되었는지 여부에 관계없이 포함됩니다.
Class.Humanoid 에 Accessory 개체가 없으면 빈 배열이 반환됩니다.
또한 Humanoid:AddAccessory() 를 참조하여 인간형의 부모에 Accessory 를 부모에 추가합니다.
반환
Class.Accessory 개체의 배열이 부모인 하이퍼텍스트의 부모에 대해 상속됩니다.
코드 샘플
local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)
GetAppliedDescription
이 함수는 현재 모양을 설명하는 인간 아이디어의 캐시된 복사본인 HumanoidDescription 을 반환합니다. 이를 사용하여 캐릭터의 모양을 빠르게 결정하고 Humanoid:ApplyDescription() 함수를 사용하여 다른 캐릭터에 모양을 할당할 수 있습니다.
또 보기
- Players:GetHumanoidDescriptionFromUserId() 는 사용자에게 패스된 아바타에 대한 설명을 제공합니다.
- Players:GetHumanoidDescriptionFromOutfitId() 이며, 이는 서버 사이드 의상 자산의 매개 변수와 일치하는 HumanoidDescription 을 반환합니다.
- Player:LoadCharacterWithHumanoidDescription() 생성 플레이어는 HumanoidDescription 에 나타나는 모습을 가지고 있습니다.
반환
GetBodyPartR15
이 함수는 다음을 반환합니다. Enum.BodyPartR15 또는 Part 이 있는지, 또는 Enum.BodyPartR15.Unknown 이 아닌 경우 플레이어 바디 부품의 이름입니다. 이 함수는 개발자가 실제 바디 부품 이름이 아닌 플레이어 바디 부품을 검색할
이 함수는 Humanoid:ReplaceBodyPartR15() 와 함께 사용할 수 있습니다. 예를 들어, 플레이어의 신체 부위가 무언가를 만질 경우, 이 함수는 get a part 인스턴스반환합니다. 개발자는 다음 부품을 참조하여 플레이어의 신체 부위가 어떤 부분
이 함수는 다리 위치가 중요한 게임에서 유용할 수 있습니다. 예를 들어, 부상에 따라 플레이어가 다리에 맞았는지 확인하고 속도를 조정하는 데 사용될 수 있습니다.
매개 변수
R15 바디 부품인지 여부를 확인하는 지정된 부분입니다.
반환
부품이 부품이 아닌 경우 R15 바디 부품 유형 또는 알 수 없습니다.The specified part's R15 body part type or unknown if the part is not a body part.
GetLimb
이 함수는 Enum.Limb 에 대해 지정된 Part 열거형을 반환합니다. 이 함수는 R15 및 R6 리그 모두에서 작동합니다. 예를 들어:
-- R15용print(humanoid:GetLimb(character.LeftUpperLeg)) -- 열거.Limb.LeftLegprint(humanoid:GetLimb(character.LeftLowerLeg)) -- 열거.Limb.LeftLegprint(humanoid:GetLimb(character.LeftFoot)) -- 열거.Limb.LeftLeg-- R6용print(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg
참고 Humanoid:GetLimb() 는 부모가 인간형의 부모인 경우 오류가 발생합니다.
매개 변수
반환
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
for _, child in pairs(character:GetChildren()) do
local limb = humanoid:GetLimb(child)
if limb ~= Enum.Limb.Unknown then
print(child.Name .. " is part of limb " .. limb.Name)
end
end
GetState
이 함수는 현재 Enum.HumanoidStateType 의 활동을 설명하는 인간 노드의 현재 Humanoid 를 반환합니다. 이는 점프 또는 수영과 같은 활동을 수행하는 인간 노드를 나타냅니다.
또한 Humanoid:SetStateEnabled() 를 참조하여 특정 상태를 활성화하거나 비활성화하고 Humanoid:ChangeState() 를 사용하여 현재 상태를 변경합니다.
반환
코드 샘플
local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)
GetStateEnabled
GetStateEnabled 함수는 Enum.HumanoidStateType에 대해 Humanoid 반환합니다.
인간 상태는 현재 인간이 수행하고 있는 활동을 설명합니다.
특정 Enum.HumanoidStateType 가 비활성화되면 인간은 그 상태에 들어갈 수 없습니다. 이는 Roblox 내부 인간oid 코드를 사용하여 상태를 변경하는 경우에도 마찬가지입니다.
또한 참조하십시오.
- 인간 상태가 활성화되거나 비활성화되면 발생하는 이벤트는 Humanoid.StateEnabledChanged
- Class.Humanoid 상태를 활성화하거나 비활성화하려면 Humanoid:SetStateEnabled()를 사용합니다.
매개 변수
지정된 Enum.HumanoidStateType .
반환
지정된 Enum.HumanoidStateType 이 활성화되었는지 여부.
코드 샘플
local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false
Move
이 함수는 Humanoid가 주어진 Vector3 방향으로 걸어갈 수 있게 합니다.
기본적으로 방향은 세계 약관, relativeToCamera의 true 의 경우, 방향은 CFrame 의 음수 방향입니다. Roblox
humanoid:Move(Vector3.new(0, 0, -1), true)
이 함수가 호출될 때 Humanoid 는 함수가 다시 호출될 때까지 이동합니다. 그러나 기본 제어 스크립트를 사용하는 경우 이 함수는 Characters 에 호출될 때 덮어쓸 수 있습니다
이 함수는 서버에서 호출할 수 있지만, 이는 서버가 인간oid의 조립에 대한 네트워크 소유권을 가지고 있을 때만 수행해야 합니다.
또한 Humanoid:MoveTo() 를 참조하십시오. 이는 Humanoid 를 지점까지 걸어가게 하고, Player:Move() 를 호출하여 이 함수를 효과적으로 호출합니다.
매개 변수
걸어 들어갈 방향.
MoveDirection 매개 변수가 moveDirection 에 대해 상대적으로 지정되면 설정을 CurrentCamera 로 설정합니다.
반환
코드 샘플
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
RunService:BindToRenderStep("move", Enum.RenderPriority.Character.Value + 1, function()
if player.Character then
local humanoid = player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:Move(Vector3.new(0, 0, -1), true)
end
end
end)
MoveTo
이 함수는 Humanoid 가 Humanoid.WalkToPoint 및 Humanoid.WalkToPart 속성을 설정하여 지정된 위치로 걸어갈 시도를 하도록 합니다.
위치 및 부품 매개 변수는 Humanoid.WalkToPoint 및 1>Class.Humanoid.WalkToPart1>에 설정될 예정입니다.
부품 매개 변수가 지정된 경우 Humanoid 는 여전히 지점에 도달하려고 시도합니다. 그러나 부품이 이동하면 Humanoid 가 지점에 도달하
인간형의 목표에 도달하는 상태의 인간oid의 경우 목표에 도달하지 못하면 8초 후에 시간 초과가 발생합니다.이 작업은 NPC가 Class.Humanoid.MoveToFinished를 발사하기 위해 스틱을 반복하게 하려면 수행됩니다. 원하지 않는 경우 MoveTo를 반복하여 시간이
MoveTo() 는 다음 조건 중 하나가 적용되면 종료됩니다.
캐릭터가 목적지에 도착합니다.
캐릭터가 갇혀 있으면 8초 타이머가 만료됩니다.
Class.Humanoid.WalkToPoint 또는 Humanoid.WalkToPart의 값이 변경됩니다.
새로운 <a href="/reference/engine/databases">데이터베이스</a> 매개 변수로 moveDirection를 호출합니다.
매개 변수
Class.Humanoid.WalkToPoint를 설정할 위치.
Class.BasePart를 사용하여 Humanoid.WalkToPart를 설정합니다.
반환
코드 샘플
local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)
RemoveAccessories
이 함수는 인간의 부모가 착용한 모든 Accessory 개체를 제거합니다. 플레이어 Characters 의 모든 모자와 다른 액세서리를 제거합니다.
이 함수는 액세서리 Accessory 개체를 호출하여 Instance:Destroy() 에 대해 Parent 의 액세서리가 2>nil2> 으로 설정되고 잠겨 있음을 의미합니다.
또한 Humanoid:AddAccessory() 를 참조하여 Accessory 를 부착하고, Humanoid:GetAccessories() 를 참조하여 모든 2>Class.Accessory2> 개체를 얻을 수 있습니다.
반환
코드 샘플
local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)
ReplaceBodyPartR15
인간형의 일부에서 R15/Rthro 림브 부품을 다른 부품으로 동적으로 교체합니다. 부품은 자동으로 크기를 조정합니다.
이 함수는 게임 플레이 또는 기본 리그에서 캐릭터를 수정하는 데 유용합니다. 관련 함수 GetBodyPartR15 는이 함수를 사용하는 경우에 유용합니다.
패트의 이름이 BodyPartR15 열거형의 이름과 일치해야 합니다.The name of the part passed in should match with the name of the BodyPartR15 Enum passed in.
매개 변수
대체할 바디 부품. Enum.BodyPartR15.Unknown 이 실패합니다.
캐릭터에 부모가 될 Class.Part``Class.Instance 입니다.
반환
SetStateEnabled
이 함수는 Enum.HumanoidStateType 에 대해 지정한 Humanoid 을 활성화할지 여부를 설정합니다. 특정 Enum.HumanoidStateType 를 비활성화하
서버에서 SetStateEnabled() 를 사용하면 변경 내용을 클라이언트에 다시 복제하지 않습니다. 또한 다시 복제하지 않습니다.
매개 변수
Enemy.HumanoidStateType 을 활성화하거나 비활성화합니다.
true 이 경우 state 이 활성화되면, false 이 경우 0> state0> 이 비활성화됩니다.
반환
코드 샘플
local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)
TakeDamage
이 함수는 Humanoid.Health 의 Class.Humanoid 에 대한 주어진 Humanoid 만큼 감소하면 됩니다, 보호되지 않는 경우에는 Class.ForceField
이 함수는 금액 매개 변수에 대한 부정 값을 수락합니다. 이것은 인간의 Humanoid.Health 를 증가시킵니다. 그러나 이 효과는 현재 ForceField가 없는 경우에만 적용됩니다.
ForceField 는 피해를 입을 때 어떻게 보호합니까
Class.Humanoid 는 다음 기준을 충족하면 보호되는 것으로 간주됩니다. ForceField :
- Class.ForceField는 Instance.Parent와 동일한 Humanoid를 공유합니다.
- Class.ForceField는 Humanoid.RootPart의 Humanoid에 부모로 지정됩니다.
어떤 Humanoid 이든 상관없이 피해를 입히려면 직접 ForceFields 를 설정합니다.
Class.ForceField|ForceFields 는 어떻게 보호하는지에 대한 자세한 내용은 Humanoids 을 참조하십시오. ForceField 페이지.
매개 변수
피해량 또는 Humanoid.Health 에서 공제할 금액.
반환
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid:TakeDamage(99)
UnequipTools
이 함수는 Tool에 현재 장착된 모든 Humanoid을 해제하십시오.
장착되지 않은 Tool 는 Backpack 와 연관된 Player 의 2>Class.Humanoid2> 에 부모로 지정됩니다.
장착되지 않은 경우 Tool 이 기능은 작동하지 않습니다.
NPC(Non Player Character)가 Tools를 장착할 수 있지만, 이 함수는 Humanoids에 해당하는 Player 만 작동합니다. 이는 1> Class.Backpack1> 개체가 장착된
또한 참조하십시오.
- 대신 Tool 를 장착하려면 Humanoid:EquipTool() 을 사용하십시오.
반환
코드 샘플
local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
ContextActionService:BindAction("unequipTools", function(_, userInputState)
if userInputState == Enum.UserInputState.Begin then
if player.Character then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:UnequipTools()
end
end
end
end, false, Enum.KeyCode.U)
ApplyDescription
이 생성 함수는 캐릭터가 패스된 HumanoidDescription 에 일치하도록 보입니다. 패스된 HumanoidDescription 의 복사본은 HumanoidDescription 에 대한 클래스 2>Class.Humanoid2> 로 캐시됩니다.
이 함수는 변경 내용을 캐릭터의 모양에만 적용하도록 가정하여 호출 간의 변경 내용을 다루지 않습니다. 변경 내용을 캐릭터 간에 적용하면 이 함수는 Class.Humanoid
또 보기
- Humanoid:GetAppliedDescription() 이 하이퍼텍스트에 적용된 현재 HumanoidDescription을 반환합니다.
- Players:GetHumanoidDescriptionFromUserId() 는 사용자에게 패스된 아바타에 대한 설명을 제공합니다.
- Players:GetHumanoidDescriptionFromOutfitId() 이며, 이는 서버 사이드 의상 자산의 매개 변수와 일치하는 HumanoidDescription 을 반환합니다.
- Player:LoadCharacterWithHumanoidDescription() 생성 플레이어는 HumanoidDescription 에 나타나는 모습을 가지고 있습니다.
매개 변수
캐릭터에 일치하도록 설정하려는 HumanoidDescription 인스턴스.
반환
ApplyDescriptionReset
이 생성 함수는 패스된 문자의 모양을 HumanoidDescription 에 적합하게 하며, 외부 변경 사항 후에도 유지됩니다. 패스된 HumanoidDescription 의 복사본은 HumanoidDescription 에 대한 1> Class.HumanoidDescription1> 로 캐시됩니
이 함수는 변경된 내용이 HumanoidDescription 시스템을
매개 변수
캐릭터에 일치하도록 설정하려는 HumanoidDescription 인스턴스.
반환
이벤트
Climbing
속도가 Humanoid 가 올라갈 때 화재됩니다.
Humanoids 는 다음과 같은 사다리를 올라갈 수 있습니다. Parts 또는 TrussParts .
Humanoids 클라이언트는 그들의 Humanoid.WalkSpeed 의 70%에 올라갑니다.
이 이벤트는 Humanoid 가 올라가지 않을 때 항상 0 속도로 발생하지는 않지만.
또한 참조하십시오.
- 수영 및 실행에 대해서는 Humanoid.Swimming 및 Humanoid.Running 이벤트를 참조하십시오
- Class.Humanoid.StateChanged 이벤트를 사용하여 Humanoid.StateChanged 가 올라가는 시간을 감지할 수도 있습니다.
- Class.Humanoid:SetStateEnabled() 함수를 사용하여 등반을 비활성화할 수 있습니다.
매개 변수
코드 샘플
local Players = game:GetService("Players")
local function onCharacterClimbing(character, speed)
print(character.Name, "is climbing at a speed of", speed, "studs / second.")
end
local function onCharacterAdded(character)
character.Humanoid.Climbing:Connect(function(speed)
onCharacterClimbing(character, speed)
end)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Died
이 이벤트는 Humanoid가 죽을 때 발생합니다. 일반적으로 Humanoid.Health가 0에 도달할 때 발생합니다. 이는 Humanoid.Torso에서 머리를 분리하거나 직접 1>Class.Humanoid.Health1>를 설정하는 경우에 발생할 수 있습니다.
이 이벤트는 클래스 Humanoid 가 Workspace의 후손이면만 발생합니다. Dead2>Ennum.HumanoidStateType2> 이 두 가지가 비활성화되면 발생하지 않습니다.
코드 샘플
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local function onDied()
print(player.Name, "has died!")
end
humanoid.Died:Connect(onDied)
end
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
FallingDown
떨어지는 이벤트는 Humanoid가 들어가고 나가면 FallingDown``Enum.HumanoidStateType에 들어가면 발생합니다.
Class.Humanoid는 GettingUp 상태가 활성화된 후 3초 후에 FallingDown 상태로 전환합니다. 이 이벤트가 발생하면 1>활성1> 값의 4>거짓</
매개 변수
Class.Humanoid 가 FallingDown 에 입거나 떠나는지 여부를 설명합니다.
FreeFalling
이 이벤트는 Humanoid 가 Freefall``Enum.HumanoidStateType에 들어가거나 떠날 때 발생합니다.
활성 Class.Humanoid 매개 변수는 Freefall 상태에 입력하거나 떠나는지 여부를 나타냅니다.
Class.Humanoid 상태가 일반적으로 지면에 도달하면 종료되지만, 이 이벤트는 상태가 변경된 상태에서 Humanoid
매개 변수
Class.Humanoid 가 Freefall``Enum.HumanoidStateType에 들어가거나 떠나는지 여부.
GettingUp
이 이벤트는 Humanoid 가 Enum.HumanoidStateType.GettingUp 상태에 들어가거나 떠나면 발생합니다. Humanoid 가 1>Ennum.HumanoidStateType.FallingDown|
Class.Humanoid 가 다시 시도하려고 할 때 이 이벤트는 잠시 후에 다시 시도하는 경우 active 매개 변수의 true 이 이전에 1>free1> 매개 변수의 4>4> 이 이전에 발생합니다.
Class.Humanoid 을 강제로 떨어뜨리려면 Humanoid:ChangeState() 함수를 사용하여 Enum.HumanoidStateType.FallingDown와 함께 작동하십시오.
매개 변수
Class.Humanoid 가 GettingUp``Enum.HumanoidStateType에 들어가거나 떠나는지 여부.
HealthChanged
이 이벤트는 Humanoid.Health가 변경될 때 발생합니다. 그러나 체력이 Humanoid.MaxHealth보다 증가하는 경우에는 발생하지 않습니다.
Class.Humanoid.Health 가 0에 도달하면 Humanoid 는 죽고 Humanoid.Died 이벤트가 발생합니다. 이 이벤트는 값 0으로 발생합니다.
매개 변수
새로운 값의 Humanoid.Health .
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local currentHealth = humanoid.Health
local function onHealthChanged(health)
local change = math.abs(currentHealth - health)
print("The humanoid's health", (currentHealth > health and "decreased by" or "increased by"), change)
currentHealth = health
end
humanoid.HealthChanged:Connect(onHealthChanged)
end
player.CharacterAdded:Connect(onCharacterAdded)
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end
Jumping
이 이벤트는 Humanoid가 Jumping``Enum.HumanoidStateType에 들어가고 나가면 발생합니다.
Class.Humanoid 이 이벤트는 이 이벤트 이후에 즉시 다시 발생하지만, active 이 이벤트
Class.Humanoid:SetStateEnabled() 함수를 사용하여 점프를 비활성화할 수 있습니다.
매개 변수
Class.Humanoid 가 Jumping``Enum.HumanoidStateType에 들어가거나 떠나는지 여부.
MoveToFinished
이 이벤트는 Humanoid가 Humanoid.WalkToPoint 및 Humanoid.WalkToPart 속성을 기반으로 목표에 도달하면 발생합니다.
Class.Humanoid.WalkToPoint 및 Humanoid.WalkToPart 속성은 개별적으로 설정할 수 있거나 Humanoid:MoveTo() 함수를 사용하여 설정할 수 있습니다.
Class.Humanoid 가 8초 이내에 목표에 도달하면 이 이벤트는 목표에 도달했습니다 으로 돌아옵니다. 목표가 8초 내에 도달되지 않으면 Humanoid 가 실행을 중지하고
매개 변수
코드 샘플
local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)
PlatformStanding
이 이벤트는 Humanoid 가 PlatformStanding 에 들어가거나 Enum.HumanoidStateType 을 떠날 때 발생합니다.
Class.Humanoid 는 PlatformStanding 상태에 있는 동안 Humanoid.PlatformStand 속성은 1>진실1>이 됩니다.
Class.Humanoid.PlatformStand 가 진실로 설정된 동안, Humanoid 는 이동할 수 없습니다. 자세한 내용은 페이지에서 1> Class.Humanoid.PlatformStand1> 를 참조하십시오.
PlatformStand Enum.HumanoidStateType 는 지금 비활성화된 Platform 부품과 연관되었습니다. 그래도 이를 사용할 수 있습니다.
매개 변수
Class.Humanoid 가 플랫폼 스탠딩을 입력하거나 떠나거나 PlatformStanding에 입력하는지 여부.
Ragdoll
이 이벤트는 Humanoid 가 Ragdoll Ennum.HumanoidStateType 에 들어가거나 떠날 때 발생합니다.
입력 또는 출구를 나타내려면 <a href="/reference/engine/datatypes">데이터 타입</a> 매개 변수에 값 <e>true</e> 또는 <e>false</e>를 가질 수 있습니다.
Use Humanoid:SetStateEnabled() to disable the GettingUp state to stay in the Ragdoll state.
또한 참조하십시오.
- Humanoid.FallingDown for the Humanoid event connected with the FallingDown state, which behaves similarly to 0> Ragdoll0>
매개 변수
Class.Humanoid 가 Ragdoll 을 입력하거나 떠나거나 Enum.HumanoidStateType 입니다.
Running
이 이벤트는 Humanoid 가 변경되는 속도에 대해 발생합니다.
Class.Humanoid|Humanoids 캐버를 실행하는 동안, 평균적으로 그들의 Humanoid.WalkSpeed는 초당 스터드 기준 Class.Humanoid.WalkSpeed입니다.
Class.Humanoid 이 이벤트를 실행할 때 속도가 0으로 감소합니다.
또한 참조하십시오.
- 수영 및 등반을 위해 Humanoid.Swimming 및 Humanoid.Climbing 이벤트를 참조하십시오.
- Class.Humanoid.StateChanged 이벤트를 사용하여 Humanoid.StateChanged 가 실행되고 있는지 감지할 수도 있습니다
매개 변수
Class.Humanoid가 실행되는 속도.
코드 샘플
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onRunning(speed: number)
if speed > 0 then
print(`{localPlayer.Name} is running`)
else
print(`{localPlayer.Name} has stopped`)
end
end
humanoid.Running:Connect(function(speed: number)
onRunning(speed)
end)
Seated
이 이벤트는 Humanoid 또는 Seat 또는 VehicleSeat 의 어느 자리에 든 앉거나 일어날 때 발생합니다.
캐릭터가 자리와 접촉하면 자리에 부착되고 앉아있는 애니메이션이 플레이됩니다. 자세한 내용은 Seat 페이지를 참조하십시오.
- 캐릭터가 앉아 있으면 active 매개 변수가 트루 이고 현재 座位에 앉아 있는 座位이 currentSeatPart입니다.
- 캐릭터가 자리에서 일어났다면, active 매개 변수가 거짓이 되고 currentSeatPart 는 nil이 됩니다.
또한 참조하십시오.
- Humanoid.Sit , 현재 앉아있는 히ュ마노이드를 나타냅니다
- Humanoid.SeatPart, 현재 앉아있는 인간형 자리를 나타냅니다.
매개 변수
코드 샘플
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local function onSeated(isSeated, seat)
if isSeated then
print("I'm now sitting on: " .. seat.Name .. "!")
else
print("I'm not sitting on anything")
end
end
humanoid.Seated:Connect(onSeated)
StateChanged
이 이벤트는 Humanoid의 상태가 변경될 때 발생합니다.
비활동 상태의 인간 유형이 없기 때문에, 대신 Humanoid.Running 이벤트를 사용하거나 RootPart 부분의 Velocity 를 듣기 위해 작업하면 됩니다. 2> Class.Humanoid
또 보기
- Humanoid:GetState() 및 Humanoid:ChangeState()를 사용하여 상태를 확인하고 설정합니다.
- Humanoid:SetStateEnabled() 를 사용하여 특정 상태를 활성화하고 비활성화합니다.
매개 변수
인간의 이전 상태 입력.
현재 상태 입력.
코드 샘플
local character = script.Parent
local primaryPart = character.PrimaryPart
-- create particles
local particles = Instance.new("ParticleEmitter")
particles.Size = NumberSequence.new(1)
particles.Transparency = NumberSequence.new(0, 1)
particles.Acceleration = Vector3.new(0, -10, 0)
particles.Lifetime = NumberRange.new(1)
particles.Rate = 20
particles.EmissionDirection = Enum.NormalId.Back
particles.Enabled = false
particles.Parent = primaryPart
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
-- listen to humanoid state
local function onStateChanged(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
particles.Enabled = true
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
particles.Enabled = false
end
end
end
humanoid.StateChanged:Connect(onStateChanged)
local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)
StateEnabledChanged
StateEnableChanged 이벤트는 Humanoid:SetStateEnabled() 가 Humanoid 에 호출될 때 발생합니다.
매개 변수에는 이 상태가 지금 활성화되었는지 여부를 나타내는 부울이 포함되어 있습니다. Enum.HumanoidStateType 및 Ennum.HumanoidStateType 매개 변수가 있습니다.
또한 참조하십시오.
- 현재 상태가 활성화되어 있는지 여부를 찾으려면 Humanoid:GetStateEnabled()를 사용하십시오.
- Class.Humanoid 상태 변경을 듣기 위해 Humanoid.StateChanged를 사용합니다.
매개 변수
활성화된 상태의 Enum.HumanoidStateType
현재 상태가 활성화된 경우에는 트루입니다.
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onStateEnabledChanged(state, enabled)
if enabled then
print(state.Name .. " has been enabled")
else
print(state.Name .. " has been disabled")
end
end
humanoid.StateEnabledChanged:Connect(onStateEnabledChanged)
Strafing
이 이벤트는 Humanoid 가 지뢰를 쏠 때 발생하지 않으며 개발자가 사용하지 않아야 합니다.
이 이벤트는 Humanoid 가 StrafingNoPhysics``Enum.HumanoidStateType에 들어가거나 떠날 때 발생합니다.
Class.Humanoid가 StrafingNoPhysics 상태에 들어가면 이 이벤트는 활성 매개 변수로 1>진정1> 을 발생시킵니다. 이벤트는 4>활성
이 이벤트는 StrafingNoPhysics``Class.Humanoid 상태와 관련이 있으며 하지 않고 1>Class.Humanoid1> 가 측면에서 이동할 때 4>not
매개 변수
Class.Humanoid 가 StrafingNoPhysics``Enum.HumanoidStateType에 들어가거나 떠나는지 여부.
Swimming
이 이벤트는 Humanoid 가 수영하는 속도가 Terrain 물에 변경될 때 발생합니다.
Humanoids 는 그들의 Humanoid.WalkSpeed 의 87.5%에서 수영합니다.
이 이벤트는 Humanoid가 수영을 중지할 때 항상 0의 속도로 발생하지는 않습니다.
또한 참조하십시오.
- 실행 및 등반을 위해 Humanoid.Running 및 Humanoid.Climbing 이벤트를 참조하십시오
- Class.Humanoid.StateChanged 이벤트를 사용하여 Humanoid.StateChanged 이 수영하는 경우를 감지할 수도 있습니다
- Class.Humanoid:SetStateEnabled() 함수를 사용하여 수영을 비활성화할 수 있습니다.
매개 변수
Touched
이 이벤트는 인간의 한쪽 팔이 다른 BasePart 와 접촉하면 발생합니다. 접촉하는 한 BasePart 는 팔과 함께 제공됩니다.
이 이벤트는 Humanoid의 일부인 팔다리가 자신과 접촉하는 경우에는 발생하지 않습니다.
대체
Class.Humanoid.Touched 이벤트는 유용하지만, 필요에 적합한 대안이 있는지 고려해야 합니다.
- 대부분의 경우, 대신에 BasePart.Touched 의 관심이 있는 BaseParts 게임연결하는 것이 좋습니다, �����
- Class.Humanoid 가 지면에 착륙했을 때 Humanoid.StateChanged 이벤트가 더 적합합니다. 또는 Humanoid.FloorMaterial 을 확인하여 인간이 어떤 공기 재료 위에 서 있는지 확인할 수 있습니다.
노트
- 이 이벤트에 연결하면 모든 손가락에 있는 손가락 전달기가 생성됩니다.Connecting to this event will cause a TouchTransmitter to be created in every limb.
- 현재 BasePart.TouchEnded 대신에 Humanoids 에 대한 적용 가능한 대안이 없습니다.
매개 변수
코드 샘플
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local partInfo = {}
local debounce = false
local function onHumanoidTouched(hit, _limb)
if debounce then
return
end
if not hit.CanCollide or hit.Transparency ~= 0 then
return
end
if not partInfo[hit] then
partInfo[hit] = {
BrickColor = hit.BrickColor,
Material = hit.Material,
}
hit.BrickColor = BrickColor.new("Gold")
hit.Material = Enum.Material.Ice
debounce = true
task.wait(0.2)
debounce = false
end
end
local touchedConnection = humanoid.Touched:Connect(onHumanoidTouched)
local function onHumanoidDied()
if touchedConnection then
touchedConnection:Disconnect()
end
-- undo all of the gold
for part, info in pairs(partInfo) do
if part and part.Parent then
part.BrickColor = info.BrickColor
part.Material = info.Material
end
end
end
humanoid.Died:Connect(onHumanoidDied)