Humanoid

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Die Humanoid ist ein spezielles Objekt, das Modellen die Fähigkeit zur physischen Umgebung und Interaktion mit verschiedenen Komponenten eines Roblox

R6

  • Ein grundlegendes Charakter-Rig, das 6 Teile für Gliedmaßen verwendet.
  • Der Head Teil muss an einen Teil namens Torso angehängt werden, oder der Humanoid wird sofort sterben.
  • BodyPart-Ansichten werden mit CharacterMesh Objekten angewendet.
  • Bestimmte Eigenschaften, wie z. B. Humanoid.LeftLeg und Humanoid.RightLeg, funktionieren nur mit R6.

R15

  • Komplexer als R6, aber auch viel flexibler und robustler.
  • Verwendet 15 Teile für Gliedmaßen.
  • Der Head Teil muss an einen Teil namens UpperTorso oder der Humanoid sofort sterben.
  • BodyPart-Ansichten müssen direkt zusammengebaut werden.
  • Kann dynamisch skaliert werden, indem spezielle NumberValue Objekte innerhalb des Humanoid verwendet werden.
  • Das Humanoid erstellt automatisch Vector3Value Objekte mit dem Namen OriginalSize in jedem Glied.
  • Wenn ein NumberValue in der Humanoid innerhalb von und mit dem Namen einer der gefolgte Profileverwendet wird, wird es verwendet, um die Skalierungsfunktionalität zu steuern:
    • Körper-Tiefe-Skalierung
    • Körperhöhe skalieren
    • Körperbreite skalieren
    • Kopfwaage

Code-Beispiele

Walking Camera Bobble Effect

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)

Zusammenfassung

Eigenschaften

Methoden

Ereignisse

Eigenschaften

AutoJumpEnabled

Parallel lesen

AutoJumpEnabled setzt, ob die Humanoid automatisch über ein Hindernis springen wird, auf das es zugesandelt wird.

Dieses Eigenschaft funktioniert derzeit nur, wenn die folgenden Bedingungen wahr sind:

  • Das Charaktermodell des Humanoid ist das Player.Character eines Player .
  • Der Spieler in der Frage verwendet Steuerung.

Wenn ein Charakter eines Spieler:inspawnet, entspricht der Wert der Eigenschaftendem Charakter des Spieler:inClass.Player.AutoJumpEnabled - der wiederum der Class.StarterPlayer.AutoJumpEnabled -Eigenschaft entspricht.

Code-Beispiele

Auto-Jump Toggle

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

Parallel lesen

Die AutoRotate-Eigenschaft beschreibt, ob die Humanoid automatisch in die Richtung drehen wird, in die sie sich bewegen. Wenn auf wahr gesetzt, wird das Charaktermodell auf das Gesichtseinige-Modell umgestellt, wenn die Humanoid um die Wende herum läuft. Wenn auf falsch gesetzt, wird das Charaktermodell auf seine aktuelle Rotation gesetzt, wenn keine drehende Kraft auf das HumanoidRootPart angewendet wird.

Wenn das Charaktermodell der Hauptcharakter eines Spieler:inist, wird das Verhalten der Rotation des Humanoiden durch die EigenschaftenRotateType des UserGameSettings beeinflusst.

Wenn die AutoRotate-Eigenschaft auf "Wahr" gesetzt ist, hat die Eigenschaft "RotateType" auf dieRotation des Humanoiden die folgenden Effekte:


<tbody>
<tr>
<td>BewegungRelativ</td>
<td />
<td />
</tr>
<tr>
<td>Kamera Relativ</td>
<td>Der Charakter wird in Richtung der Kamera drehen.</td>
<td>Spieler hat die Kamera in die erste Person geschaltet, oder sie sind im Shift-Lock-Modus.</td>
</tr>
</tbody>
RotationTypeVerhaltenKontext

Code-Beispiele

AutoRotate Button

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

Parallel lesen

Die Humanoid hat sechs Kinderskalierungen, einschließlich BodyDepthScale, BodyHeightScale, BodyProportionScale, 2>BodyTypeScale2>, 5>HeadScale5>, und die Änderung des Wertes von irgendeinem dieser Faktoren verursacht, dass die Kör

BreakJointsOnDeath

Parallel lesen

Bestimmt, ob die Gelenke des Humanoiden zerbrechen, wenn sie im Enum.HumanoidStateType.Dead Zustand sind. Standard ist auf true.

CameraOffset

Parallel lesen

Die CameraOffset-Eigenschaft gibt einen Offset für die KameraPosition an, wenn ihre Camera.CameraSubject auf diesen Humanoid festgelegt ist.

Der Offset wird in Objekt-Raum angewendet, relativ zur Ausrichtung des Humanoid's HumanoidRootPart . Zum Beispiel, ein Offset Vector3 Wert von (0, 10, 0) Offsets die Kamera des Spieler:inauf 10 Studs über dem Spieler:in's Humanoid.

Code-Beispiele

Walking Camera Bobble Effect

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)
Parallel lesen

Die DisplayDistanceType Eigenschaft kontrolliert das Verhalten der Entfernung des menschlichen Namens und der Gesundheitsanzeige. Diese Eigenschaft wird mit dem Enum.HumanoidDisplayDistanceType Enumer mit drei verfügbaren Werten festgelegt, mit denen jedes mit eigener Reihe von Regeln:

  • Wenn auf Viewer eingestellt, sieht der Humanoid den Namen/die Gesundheit anderer Humanoiden innerhalb seines eigenen NameDisplayDistance und HealthDisplayDistance .
  • Wenn auf Subject eingestellt, übernimmt der Humanoid volle Kontrolle über seinen eigenen Namen und Gesundheitsanzeige durch seine NameDisplayDistance und NameDisplayDistance Werte.
  • Wenn auf None eingestellt, erscheinen der Name und die Gesundheitsleiste des Humanoiden unter keinen Bedingungen.

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

Code-Beispiele

Displaying a Humanoid's Health and Name

local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100

DisplayName

Parallel lesen

DisplayName ist eine Eigenschaft, die das Display des Namens des Humanoiden bei Sichtbarkeit bestimmt. Standardmäßig hat ein neuer Humanoid den Wert einer leeren String. Wenn DisplayName eine leere Stringist, wird das Display des Namens des Humanoiden standardmäßig auf das Eigenschaftendes Namens des übergeordnetes Teilzurückgesetzt.

Spielercharakter-Laden

Wenn Spieler ihren Charakter laden, entweder automatisch oder durch die Verwendung von LoadCharacter(), wird der Humanoid, der durch den Engine erstellt wird, auf die Eigenschaft DisplayName des Spieler:ineingestellt.

StarterCharacter und StarterHumanoid

Wenn ein Humanoid mit dem Namen StarterHumanoid in einem StarterPlayer mit einem Humanoid

EvaluateStateMachine

Parallel lesen

FloorMaterial

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dies ist eine nur lesbare Eigenschaft, die die Enum.Material beschreibt, auf der die Humanoid derzeit steht. Es funktioniert mit sowohl normalen Parts und 1> Class.Terrain1>-Voxeln.

Das Codebeispiel unten zeigt, wie man zuhört, wenn diese Eigenschaft mit Object:GetPropertyChangedSignal() ändert. Wenn das Material, auf dem der Humanoid steht, sich ändert, wird eine Nachricht gedruckt, die anzeigt, dass das neue Material aufgestellt wird.


local Humanoid = route.to.humanoid
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
print("New value for FloorMaterial: " .. tostring(Humanoid.FloorMaterial))
end)

Bewegungen

  • Wenn das Humanoid nicht auf einem Boden steht, wird der Wert dieser Eigenschaft auf Luft gesetzt.
    • Dies geschieht, da enum-Eigenschaften keinen leeren Wert haben können.
    • Dies kann zu einigen Verwechslungen führen, wenn ein Teil sein Material auf Luft setzt, obwohl in der Praxis sollten Teile dieses Material nicht verwenden.
  • Das Charaktermodell des Humanoid muss in der Lage sein, mit dem Boden zu kollidieren, sonst wird es nicht erkannt.
    • Du kannst nicht testen, ob das Humanoid mit dieser Eigenschaftenschwimmt. Du solltest stattdessen seine Humanoid:GetState() -Funktion verwenden.

Health

Nicht repliziert
Parallel lesen

Dieses Eigenschaft repräsentiert die aktuelle Gesundheit des Humanoid. Der Wert ist auf die Reichweite zwischen 0 und MaxHealth eingeschränkt. Wenn der Humanoid tot ist, wird diese Eigenschaft ständig auf 0 gesetzt.

Beachten Sie, dass die Funktion TakeDamage() verwendet werden kann, um von Health abzuziehen, anstatt die Eigenschaft direkt zu setzen.

Gesundheitsregeneration

Standardmäßig wird ein passives Gesundheitsregenerationsskript automatisch in die Humanoiden eingefügt. Dies verursacht, dass nicht-todesplayer-Charaktere 1% von MaxHealth jede Sekunde regenerieren. Um dieses Regenerationsverhalten zu deaktivieren, füge einen leeren Script mit dem Namen Gesundheit zu 1>

Gesundheitsleiste anzeigen

Wenn Health weniger als MaxHealth ist, wird eine Gesundheitsleiste im Erlebnis angezeigt. Das Anzeigeverhalten der Gesundheitsleiste ist abhängig von der HealthDisplayDistance und 1> Class.Humanoid.HealthDisplayType|

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

Der Tod

Wenn der Wert der Charakter-Gesundheit 0 erreicht, wird der Humanoid automatisch in den Enum.HumanoidStateType.Dead Zustand übergehen. In diesem Zustand ist Health auf 0 gesperrt; jedoch gibt es keinen Fehler oder Warnung für die Festlegung des

HealthDisplayDistance

Parallel lesen

Diese Eigenschaft ist eine Zahl, die in Verbindung mit der DisplayDistanceType Eigenschaft verwendet wird, um die Distanz zu kontrollieren, von der die Gesundheitsleiste eines Humanoids sichtbar ist.

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

Parallel lesen

Dieses Eigenschaftsteuerung kontrolliert, ob die Gesundheitsleiste eines Humanoiden angezeigt werden soll. Standardmäßig ist dieses Eigenschaft auf Class.Humanoid.Health|Health

Beachten Sie, dass diese Eigenschaft unabhängig von der HealthDisplayDistance Eigenschaft des Humanoids ist, die für das Machen der Gesundheitsleiste bei bestimmten Distancen verantwortlich ist. Wenn Humanoid.HealthDisplayType|HealthDisplayType auf En

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

HipHeight

Parallel lesen

Bestimmt die Entfernung (in Studs) vom Boden, ab der der RootPart stehen sollte, wenn der Humanoid steht. Die RigType beeinflusst die Art und Weise, in der sich diese Eigenschaft verhält.

Für R15-Riegel ist eine angemessene Hüftshöhe voreingestellt, um die Höhe des RootPart korrekt zu gewährleisten. Die Höhe der Beine wird nicht verwendet. Die Gesamthöhe des Menschen kann in der folgenden Formel beschrieben werden:


Height = (0.5 * RootPart.Size.Y) + HipHeight

Für R6-Rigs beschreibt HipHeight stattdessen einen relativen Versatz. Die Gesamthöhe des Humanoid kann in der folgenden Formel beschrieben werden:


Height = LeftLeg.Size.Y + (0.5 * RootPart.Size.Y) + HipHeight

Jump

Nicht repliziert
Parallel lesen

Wenn true , die Sprünge mit einer nach oben gerichteten Kraft, die der Wert von Humanoid oder die Höhe von Humanoid.JumpPower entspricht, abhängig von der Wert von 1> Class.Humanoid.UseJumpPower1> .

JumpHeight

Parallel lesen

Gibt die Kontrolle über die Höhe eines Humanoid Sprungs, in Studs. Der Ausgangswert dieser Eigenschaft wird durch den Wert von StarterPlayer.CharacterJumpHeight bestimmt, der standardmäßig 7,2 beträgt.

Obwohl das Festlegen dieser Eigenschaft auf 0 das humanoiden Sprung verhindern wird, empfiehlt sich das Deaktivieren des Sprungs durch die Deaktivierung des Zustands Enum.HumanoidStateType.Jumping .

Dieses Eigenschaft ist nur in dem Eigenschaften-Fenster sichtbar, wenn Humanoid.UseJumpPower auf falsch eingestellt ist, da sonst nicht relevant (stattdessen wird 1> Class.Humanoid.JumpPower verwendet).

JumpPower

Parallel lesen

Bestimmt, wie viel nach oben Kraft angewendet wird auf die Humanoid , wenn Sie springen. Der Startwert dieser Eigenschaft wird durch den Wert von StarterPlayer.CharacterJumpPower bestimmt, der standardmäßig 50 beträgt und zwischen 0 und 1000 eingeschränkt ist. Beachten Sie, dass Sprünge auch vom

Obwohl das Festlegen dieser Eigenschaft auf 0 das humanoiden Sprung verhindern wird, empfiehlt sich das Deaktivieren des Sprungs durch die Deaktivierung des Zustands Enum.HumanoidStateType.Jumping .

Dieses Eigenschaft ist nur in dem Eigenschaften-Fenster sichtbar, wenn Humanoid.UseJumpPower auf wahr eingestellt ist, da sonst nicht relevant (stattdessen wird 1> Class.Humanoid.JumpHeight1> verwendet).

MaxHealth

Parallel lesen

Der maximale Wert eines Humanoiden Health .

Der Wert dieser Eigenschaft wird neben der Health -Eigenschaft verwendet, um die Standard-Gesundheitsleiste anzuzeigen. Wenn ein Humanoid의 Health erreicht, MaxHealth , kann seine Gesundheitsleiste nicht angezeigt werden, abhängig

MaxSlopeAngle

Parallel lesen

Dieses Eigenschaft bestimmt den maximalen Steigungswinkel, den ein Menschoid kletternkann. Wenn der Winkel einer Steigung größer ist als der MaxSlopeAngle eines Menschoid, werden sie nach unten durch die Steigung rutschen.

Wenn ein Charakter spawnet, wird diese Eigenschaft nach dem Wert von StarterPlayer.CharacterMaxSlopeAngle festgelegt.

Der Wert dieser Eigenschaft wird auf Werte zwischen 0° und 89° eingeschränkt. Standardmäßig beträgt der Wert 89°, sodass Menschenoiden fast jeden Steigung ansteigen können, die sie standardmäßig wollen.

Code-Beispiele

Limiting The Slope a Humanoid Can Walk Up

local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30

MoveDirection

Schreibgeschützt
Nicht repliziert
Parallel lesen

MoveDirection ist eine nur lesbare Eigenschaft, die die Richtung beschreibt, in die ein Humanoid läuft, als Einheitsvektor oder Vektorkraft. Die Richtung wird in der Platzbeschrieben.

Da diese Eigenschaft nur gelesen werden kann, kann sie nicht von einem Script oder LocalScript festgelegt werden.

Code-Beispiele

Walking Camera Bobble Effect

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

Parallel lesen

Die NameDisplayDistance -Eigenschaft ist eine Zahl, die in Kombination mit der Class.Humanoid.DisplayDistanceType -Eigenschaft verwendet wird, um die Entfernung, von der der Name eines Humanoids gesehen werden kann, zu kontrollieren.

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

NameOcclusion

Parallel lesen

Steuert, ob die Name und die Gesundheitsleiste eines Humanoiden hinter Wänden oder anderen Objekten angezeigt werden kann. Dies ist eine Enum.NameOcclusion -Wert und kann konfiguriert werden, um alle Namen, feindliche Namen oder die Deaktivierung der Gesundheitsleiste vollständig zu occludieren.

In Fällen, in denen das LocalPlayer kein Humanoid mit ihm verknüpfen hat, gilt dieses Eigenschaft stattdessen für das Thema Humanoid.

Siehe Charaktername/Gesundheitsanzeige für eine umfassende Anleitung zum Kontrollieren des Aussehens von Charakternamen und Gesundheitsleisten.

Code-Beispiele

Occlude Player Names

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

Parallel lesen

Bestimmt, ob der Humanoid derzeit im Enum.HumanoidStateType.PlatformStanding Zustand ist. Wenn ja, ist der Humanoid in einem Zustand, in dem er frei fällt und sich nicht Verschiebungswerkzeugkann. Dieser Zustand funktioniert ähnlich wie das Sitzen, außer dass das Springen den Humanoid nicht aus dem Zustand befreit.

RequiresNeck

Parallel lesen

Erlaubt es Entwicklern, das Verhalten zu deaktivieren, bei dem ein Spieler Character|character stirbt, wenn der Nacken Motor6D entfernt oder getrennt wird, even momentarily. Diese Eigenschaft wird standardmäßig auf true gesetzt.

Parallel lesen

RigType beschreibt, ob ein Humanoid ein Erbeutegerät mit dem R6-Charaktergerät oder dem R15-Charaktergerät verwendet.

Das R6-Rig verwendet 6 sichtbare Parts , während das R15-Rig 15 sichtbare Parts hat. R15-Rige haben mehr Verbindungen als R6-Rige, wodurch sie viel vielseitiger sind, wenn sie animiert werden.

Beachten Sie, dass wenn diese Eigenschaft falsch gesetzt wird, die Humanoid nicht richtig funktioniert. Zum Beispiel, wenn der R15-Humanoid-RigType auf R6 festgelegt ist, wird die Class.Humanoid sterben, da keine Class.BasePart</

RootPart

Schreibgeschützt
Nicht repliziert
Parallel lesen

Ein Verweis auf das HumanoidRootPart -Objekt des Humanoid, der Hauptantrieb des Humanoid, der die Bewegung eines Humanoiden durch die 3D-Welt steuert. Dieses Teil ist normalerweise nicht sichtbar.

Beachten Sie, dass in dem Fall von Spielercharakter, RootPart dasselbe ist wie die Model.PrimaryPart des Player.Character-Modells.

SeatPart

Schreibgeschützt
Nicht repliziert
Parallel lesen

SeatPart ist eine Verweisung auf den Sitz, auf dem ein Humanoid derzeit sitzt, wenn vorhanden. Der Wert dieser Eigenschaft kann entweder ein Seat oder ein VehicleSeat sein. Es wird 1> null1> sein, wenn der Humanoid nicht auf einem Sitz sitzt.

Hinweis:

Sit

Parallel lesen

Die Sit-Eigenschaft ist einBoolean, der anzeigt, ob das Humanoid derzeit sitzt. Humanoids kann durch Festlegung des Wertes dieser Eigenschaftenin true gesetzt werden, um den Zustand des Sitzes zu erzwingen. Wenn das Humanoid

Hinweis:

  • Die Seat oder VehicleSeat auf der Humanoid sitzenden kann mit der 1>Class.Humanoid.SeatPart1> Eigenschaftenerhalten werden
  • Es ist möglich, zu erkennen, wenn ein Humanoid durch das Verbinden mit dem Ereignis Humanoid.Seated sitzt.

TargetPoint

Parallel lesen

Verwende nicht Diese Eigenschaft funktioniert nur mit dem Experimentellen Modus aktiviert, der vollständig aufgehört wurde.

Dieses Eigenschaftsbeschreibung beschreibt eine 3D-Position im Weltraum, bei der der Player , der diesen Humanoid mit einem Tool ausgerüstet hat, mit einem Klick auf eine 2>Class.Tool-2> ausgerüstete.

Dieses Eigenschaft wird hauptsächlich von klassischen Tools verwendet, um zu bestimmen, auf wen ein Humanoid zielt, wenn er ein Werkzeug aktiviert. Wenn Sie einem NPC einen klassischen Raketenwerfer geben, setzen Sie den Zielpunkt des NPC und rufen dann die Funktion Tool:Activate() auf, kannst du den NPC, eine Rakete am Zielpunkt abfeuern.

UseJumpPower

Parallel lesen

Wenn ein Charakter spawnet, wird diese Eigenschaft nach dem Wert von StarterPlayer.CharacterUseJumpPower festgelegt, der standardmäßig auf true gesetzt ist.

Wenn Sie springen, mit dieser Einstellung auf true, wird der Humanoid.JumpHeight Wert verwendet, um sicherzustellen, dass die humanoiden Sprünge zu dieser Höhe springen. Mit dieser Einstellung auf false wird die Humanoid.JumpPower Wert verwendet, um einen nach oben verwendeten Kraft zu erhalten.

WalkSpeed

Parallel lesen

Dieses Eigenschaftsbeschreiben, wie schnell der Humanoid Gehenkann, in Studs pro Sekunde. Standardiert auf den Wert von StarterPlayer.CharacterWalkSpeed (16), was bedeutet, dass ein Spielercharakter 16 Studs in jede Richtung jede Sekunde bewegen kann.

Notizen

  • Wenn auf einem mobilen Gerät oder einer Gamepadkontrolliert wird, kann ein Humanoid langsamer als seine WalkSpeed gehen, wenn der kontrollierende Stick nur einen Grad von der Mitte entfernt bewegt wird.
  • Du kannst einen Humanoid in seinem Platz einfrieren, indem du WalkSpeed auf 0 setzt; dies verhindert, dass der kontrollierende Spieler ihn durch die Standard-Bewegungsmechanismen bewegt.
  • Das Standard-Animationsskript skaliert die Bewegungsanimationen eines Humanoid basierend auf der Geschwindigkeit, mit der es im Verhältnis zu der Standardgeschwindigkeit von 16 Studs/Sek. bewegt.
  • Die Geschwindigkeit, mit der das Humanoid derzeit läuft, kann mit dem Ereignis Running erhalten werden.

WalkToPart

Parallel lesen

WalkToPart ist eine Verweis auf ein Teil, das der Humanoid versucht, zu erreichen. Diese Eigenschaft wird normalerweise festgelegt, wenn ein Teil als zweites Argument der Humanoid:MoveTo() Funktion eines Humanoid eingegeben wird.

Wenn WalkToPart festgelegt ist und ein Humanoid aktiv versucht, die Part zu erreichen, wird es seine Vector3-Ziel aktualisieren, um die Position der Part zu sein, plus die Humanoid.WalkToPoint im Objektbereich relativ zu derRotation der Part.

Dies kann in Lua wie folgt beschrieben werden:


goal = humanoid.WalkToPart.CFrame:pointToObjectSpace(humanoid.WalkToPoint)

Bewegungen

  • Die Werte von WalkToPart sind nicht ausreichend, um einen menschlichen Start nach einem Teil zu erstellen.
  • Der Humanoid wird aufgefordert, zu versuchen, ein Ziel zu erreichen, wenn der Wert von WalkToPoint geändert wird.
  • Dies kann in der Zukunft geändert werden.
  • Der Zielzustand eines Humanoids erreicht nach 8 Sekunden ist das Timeout, wenn er sein Ziel nicht erreicht.
  • Dies wird getan, damit NPCs nicht stecken bleiben, wenn sie auf Humanoid.MoveToFinished warten, um zu initiieren.
  • Wenn Sie dies nicht möchten, sollten Sie MoveTo erneut aufrufen, damit der Countdown nicht zurückgesetzt wird.

WalkToPoint

Parallel lesen

WalkToPoint beschreibt die 3D-Position im Weltraum, die ein Humanoid versucht zu erreichen, nachdem er von der Funktion Humanoid:MoveTo() des Humanoiden angehalten wurde.

Wenn ein Humanoid의 Humanoid.WalkToPart festlegenist, wird das Ziel durch Umwandlung von WalkToPoint in Relation zu den Positionen und Ausrichtungen der Teile bestimmt. Wenn WalkToPart nicht festlegenist, versucht der Humanoid, die 3D-Position direkt durch WalkToPoint zu erreichen.

Bewegungen

  • Der Wert von WalkToPoint muss auf einen anderen Wert geändert werden, damit der Menschoiden-Walk startet, um ihn zu erreichen.
  • Wenn du einen menschlichen Weg zu 0,0,0 machen möchtest, solltest du die Funktion von Humanoid's MoveTo verwenden.
  • Dies kann in der Zukunft geändert werden.
  • Der Zielzustand eines Humanoids erreicht nach 8 Sekunden ist das Timeout, wenn er sein Ziel nicht erreicht.
  • Dies wird getan, damit NPCs nicht stecken bleiben, wenn sie auf Humanoid.MoveToFinished warten, um zu initiieren.
  • Wenn Sie dies nicht möchten, sollten Sie MoveTo erneut aufrufen, damit der Countdown nicht zurückgesetzt wird.

Code-Beispiele

Humanoid MoveTo Without Time out

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)

Methoden

AddAccessory

void

Diese Methode überträgt den angegebenen Accessory an den übergeordnetes Teildes Humanoiden.

Wenn diese Methode aufgerufen wird, wird ein Accessory an den Charakter angehängt, indem nach einem

Wenn der erforderliche Attachment nicht gefunden werden kann, bleibt der Accessory der Eltern zu dem humanoiden übergeordnet, aber er wird nicht angehängt.

In der Regel werden Zubehörschweißungen auf dem Server erstellt, aber sie können auf dem Client unter bestimmten Bedingungen erstellt werden. In diesen Situationen können Client-seitige Anrufe zu AddAccessory() nicht immer das gewünschte Verhalten produzieren und Sie können BuildRigFromAttachments()

Parameter

accessory: Instance

Das Accessory wird angenommen.


Rückgaben

void

Code-Beispiele

[Humanoid] AddAccessory Example

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

void

Diese Methode alssemblt einen Baum von Motor6D Joints für den Humanoid . Motor6D Joints sind für die Wiedergabe von 1> Class.Animation|Animations1> erforderlich.

Starting from the humanoid's RootPart , this method collects all Attachments parented in the current part whose name ends with Rig附件 . It

Humanoid:BuildRigFromAttachments() skaliert auch den Charakter und setzt die Körperfarben.


Rückgaben

void

Code-Beispiele

Lua Port of 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)
R15 Package Importer

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

void

Diese Funktion verursacht, dass die Humanoid in den angegebenen Enum.HumanoidStateType eingegeben wird, der die Aktivität beschreibt, die der Humanoid derzeit ausführt.

Bitte überprüfen Sie die Enum.HumanoidStateType Seite für weitere Informationen zu den verschiedenen Zuständen, da einige unintuitive Namen haben. Zum Beispiel beschreibt Enum.HumanoidStateType.Running einen Zustand, in dem die Beine des Humanoiden auf dem Boden sind, einschließlich wenn sie stillstehen.

Aufgrund des Standardverhaltens des Humanoid werden einige Zustände automatisch geändert, wenn sie festlegensind. Zum Beispiel:

Siehe auch Humanoid:SetStateEnabled() , um einen bestimmten Zustand zu aktivieren oder zu deaktivieren, und Humanoid:GetState() , um den aktuellen Zustand des Humanoids zu erhalten.

Parameter

Der Enum.HumanoidStateType, der ausgeführt werden soll.

Standardwert: "None"

Rückgaben

void

Code-Beispiele

Double Jump

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

void

Diese Funktion macht das Humanoid ausrüsten, das Tool gegeben.

Das folgende Beispiel würde veranlassen, dass ein Player ein Werkzeug in Workspace namens 'Tool' ausrüstet.


local Players = game:GetService("Players")
local player = Players:FindFirstChildOfClass("Player")
if player and player.Character then
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local tool = workspace:FindFirstChild("Tool")
if tool then
humanoid:EquipTool(tool)
end
end
end

Wenn diese Funktion aufgerufen wird, wird der Humanoid automatisch alle Tools ablegen, die er derzeit ausgerüstet hat

Obwohl sie ausgerüstet werden, Tools für die qual Tool.RequiresHandle ist, dass true nicht funktionieren wird, wenn sie keine Ziehpunkthaben, unabhängig davon, ob diese Funktion verwendet wird, um sie auszurüsten oder nicht

Siehe auch:

Parameter

tool: Instance

Die Tool zum Ausrüsten.


Rückgaben

void

GetAccessories

Diese Funktion gibt eine Reihe von Accessory Objekten zurück, die der Elternteil des Menschen trägt. Alle solchen Accessory Objekte werden inklusive sein, unabhängig davon, ob sie angeschlossen sind oder nicht.

Wenn das Humanoid kein Accessory Objekt hat, wird eine leere Matrix zurückgegeben.

Siehe auch Humanoid:AddAccessory() , um ein Accessory an den übergeordnetes Teileines Humanoids anzubinden.


Rückgaben

Ein Array von Accessory Objekten, die der übergeordnetes Teildes Humanoiden zugewiesen sind.

Code-Beispiele

Remove Accessories After Loading

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

Diese Funktion gibt eine Kopie des zwischengespeicherten humanoiden zurück, die HumanoidDescription , die sein aktuelles Aussehen beschreibt. Dies kann verwendet werden, um den Aussehen eines Charakters schnell zu bestimmen und seinen Aussehen anderen Charaktern mit der Funktion Humanoid:ApplyDescription() zuzuweisen.

Siehe auch


Rückgaben

GetBodyPartR15

Diese Funktion gibt zurück, was Enum.BodyPartR15 ist, oder Part ist, wenn die Teil nicht ein R15-Körperteil ist. Diese Funktion ermöglicht es Entwicklern, Spieler-Körperteile unabhängig von den tatsächlichen Körperteilnamen wiederzuholen, anstatt eine Liste zu erstellen.

Es kann in Zusammenarbeit mit Humanoid:ReplaceBodyPartR15() verwendet werden. Zum Beispiel, wenn ein Spieler:inKörper irgendwas berührt, wird diese Funktion zurückgegeben, um eine Teil-Instanz zu erhalten. Dann, abhängig von der Art der Körperteile, die gewesen sind, wie z. B. Kopf oder Arm. Dann, abhängig von der Art der Körperteile, die gewesen sind, wie z. B.

Diese Funktion kann nützlich sein für Spiele, in denen die Schlagposition wichtig ist. Zum Beispiel kann sie verwendet werden, um zu bestimmen, ob ein Spieler in den Beinen getroffen wird und dann basierend auf der Verletzung langsamer.

Parameter

part: Instance

Der angegebene Teil wird überprüft, um zu sehen, ob es ein R15-Körperteil ist.


Rückgaben

Der R15-Körperteil der angegebenen Teil, wenn der Teil kein Körperteil ist.

GetLimb

Diese Funktion gibt das Enum.Limb Ensemble zurück, das mit dem angegebenen Part assoziiert ist. Es funktioniert für R15- und R6-Rig, z. B.:


-- Für R15
print(humanoid:GetLimb(character.LeftUpperLeg)) -- enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftLowerLeg)) -- enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftFoot)) -- enum.Limb.LeftLeg
-- Für R6
print(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg

Beachten Sie, dass Humanoid:GetLimb() einen Fehler wird, wenn der Elternteil des Teils nicht auf den übergeordnetes Teildes Humanoiden festgelegt ist.

Parameter

part: Instance

Die Part für die die Enum.Limb abgerufen werden soll.


Rückgaben

Die Enum.Limb der zugeordneten Teil.

Code-Beispiele

Getting a Humanoid's Limbs

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

GetMoveVelocity


Rückgaben

Parallel schreiben

Diese Funktion gibt die aktuelle Enum.HumanoidStateType des Humanoid zurück, die die Aktivität beschreibt, die der Humanoid derzeit ausführt, wie zum Beispiel Springen oder Schwimmen.

Siehe auch Humanoid:SetStateEnabled() , um einen bestimmten Zustand zu aktivieren oder zu deaktivieren, und Humanoid:ChangeState() , um den aktuellen Zustand des Humanoids zu ändern.


Rückgaben

Code-Beispiele

Double Jump

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

Parallel schreiben

Die Funktion GetStateEnabled gibt zurück, ob ein Enum.HumanoidStateType``Class.Humanoid aktiviert ist.

Der humanoid-Status beschreibt die Aktivität, die der Humanoid derzeit ausführt.

Wenn ein bestimmter Enum.HumanoidStateType deaktiviert ist, kann der Mensch niemals diesen Zustand betreten. Dies gilt unabhängig davon, ob der Versuch, den Zustand zu ändern, mit Humanoid:ChangeState() oder Roblox-internem Codeserfolgt.

Siehe auch:

Parameter


Rückgaben

Ob der angegebene Enum.HumanoidStateType aktiviert ist.

Code-Beispiele

Setting and Getting Humanoid States

local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false

Move

void

Diese Funktion verursacht, dass das Humanoid in die angegebene Richtung Vector3 läuft.

Standardmäßig ist die Richtung in der Welt Bedingungen, aber wenn der relativeToCamera -Parameter true ist, ist die Richtung in der Richtung des CFrame der 2>Class.Arbeitsbereich.CurrentCamera|CurrentCamera2> . Als negativer


humanoid:Move(Vector3.new(0, 0, -1), true)

Wenn diese Funktion aufgerufen wird, bewegt sich die Humanoid bis zur Funktion wieder. Wenn jedoch die Standard-Steuerskripte verwendet werden, wird diese Funktion überschrieben, wenn sie auf dem Spieler Characters aufgerufen wird. Dies kann vermieden werden, indem entweder die Standard-Steuerskripte nicht verwendet werden oder diese Funktion jed

Diese Funktion kann auf dem Server aufgerufen werden, aber dies sollte nur getan werden, wenn der Server Netzwerkbesitz der Montagemaschine des Menschenoiden hat.

Siehe auch Humanoid:MoveTo() , die einen Humanoid Walk zu einem Punkt macht, und Player:Move() , die diese Funktion effektiv aufruft.

Parameter

moveDirection: Vector3

Die Richtung, in die Sie gehen.

relativeToCamera: bool

Setzen Sie auf true wenn der moveDirection -Parameter als relativer zu der CurrentCamera zu nehmen ist.

Standardwert: false

Rückgaben

void

Code-Beispiele

Moving a Humanoid Forwards

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

void

Diese Funktion veranlasst die Humanoid dazu, sich zum gegebenen Ort zu begeben, indem die Humanoid.WalkToPoint und Humanoid.WalkToPart Eigenschaften eingestellt werden.

Die Position und Teil-Parameter entsprechen dem, was Humanoid.WalkToPoint und 2>Class.Humanoid.WalkToPart2> sein wird.

Wenn der Teil-Parameter angegeben ist, wird der Class.Humanoid -Punkt immer noch versuchen, zum Punkt zu gehen. Wenn der Teil sich bewegt, versucht der Punkt, der Class.Humanoid -Punkt ist, immer noch, in der gleichen Position zu sein, 1>

Der Zustand erreichtes Ziel eines Humanoids wird nach 8 Sekunden abgelaufen, wenn er sein Ziel nicht erreicht. Dies wird so getan, dass NPCs nicht stecken bleiben, während sie auf Humanoid.MoveToFinished warten, um zu initiieren. Wenn Sie dies nicht möchten, sollten Sie MoveTo mehrmals aufrufen, damit der Countdown abgelaufen ist.

MoveTo() endet, wenn eine der folgenden Bedingungen antritt:

Parameter

location: Vector3

Die Position, zu der Humanoid.WalkToPoint zu setzen ist.

part: Instance

Die BasePart um Class.Humanoid.WalkToPart einzurichten.

Standardwert: "nil"

Rückgaben

void

Code-Beispiele

Humanoid MoveTo Without Time out

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

void

Diese Funktion entfernt alle Accessory Objekte, die von der übergeordnetes Teildes Humanoid getragen werden. Für den Spieler Characters wird dies alle Hüte und andere Zubehör entfernen.

Diese Funktion entfernt das Accessory -Objekt, indem sie Instance:Destroy() auf sie aufruft, was bedeutet, dass das Parent der Zubehörte auf 2>nil2> eingestellt ist und gesperrt.

Siehe auch Humanoid:AddAccessory() , um ein Accessory anzuhängen, und Humanoid:GetAccessories() , um alle 1> Class.Accessory1> Objekte eines 4> Class.Humanoid4> zu erhalten.


Rückgaben

void

Code-Beispiele

Remove Accessories After Loading

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

Ersetzt dynamisch einen R15/Rthro-Limettenteil in einem Humanoid mit einem anderen Teil. Die Teil wird automatisch skaliert, wie normal.

Diese Funktion ist nützlich, um die Charaktere während des Spiels zu ändern oder Charaktere aus einer Basis-Rig zu erstellen. Die zugeordnete Funktion GetBodyPartR15 kann in der Hand gelangen, wenn Sie diese Funktion verwenden.

Der Name der partei, der eintreten soll, muss mit dem Namen der BodyPartR15 Enum übereinstimmen.

Parameter

Der zu ersetzende Körperteil. Enum.BodyPartR15.Unknown wird fehlen.

part: BasePart

Die Class.Part``Class.Instance , die der Figur zugewiesen wird.


Rückgaben

SetStateEnabled

void

Diese Funktion setzt, ob ein bestimmtes Enum.HumanoidStateType aktiviert ist für den Humanoid. Wenn ein bestimmtes Enum.HumanoidStateType deaktiviert ist, kann der 1> Class.Humanoid

Beachten Sie, dass die Verwendung von SetStateEnabled() auf dem Server die Änderung nicht auf den Client repliziert, und vice versa.

Parameter

Der Enum.HumanoidStateType zum Aktivieren oder Deaktivieren.

enabled: bool

true wenn state aktiviert werden soll, false wenn 0> state0> deaktiviert werden soll.


Rückgaben

void

Code-Beispiele

Jump Cooldown

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

void

Diese Funktion senkt die Humanoid.Health des Humanoid durch die angegebene Class.Humanoid-Menge, wenn sie nicht durch einen 2>Class.ForceField2> geschützt ist

Diese Funktion akzeptiert negative Werte für den Menge-Parameter. Dies wird die Humanoid's Humanoid.Health erhöhen. Dies wird jedoch nur einen Effekt haben, wenn kein ForceField vorhanden ist.

Wie schützen Force Felder vor TakeDamage

Ein Humanoid wird als geschützt angesehen, wenn ein ForceField einen der folgenden Kriterien erfüllt:

Um Schaden an einen Humanoid zuzufügen, unabhängig von jeder ForceFields Gegenwart, setze Humanoid.Health direkt.

For more information on how ForceFields protect Humanoids see the ForceField page

Parameter

amount: number

Der Schaden oder Betrag, der von der Humanoid.Health abgezogen werden soll.


Rückgaben

void

Code-Beispiele

Damaging a Humanoid

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

void

Diese Funktion entfernt alle Tool derzeit ausgerüsteten durch den Humanoid

Das nicht ausgerüstete Tool wird mit dem Backpack der mit dem Player verbunden ist, der mit dem 1> Class.Humanoid1> verbunden ist, zu der Eltern-4>Class.Humanoid4> gehört.

Wenn kein Tool ausgerüstet ist, wird diese Funktion nichts tun.

Obwohl Tools von NPCs (Nicht-Spieler-Charaktern) ausgerüstet werden kann, funktioniert diese Funktion nur auf Humanoids mit einem entsprechenden Player. Dies liegt daran, dass ein 1> Class.Backpack1> -Objekt benötigt wird, um das nicht ausger

Siehe auch:


Rückgaben

void

Code-Beispiele

Unequip Tool Keybind

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

void
Angehalten

Diese Funktion gibt dem Charakter das Aussehen, das dem des HumanoidDescription . Eine Kopie des HumanoidDescription ist als Class.HumanoidDescription für den 1> Class.Humanoid1> .

Diese Funktion wird optimiert, indem die Annahme getroffen wird, dass nur diese Funktion verwendet wird, um das Aussehen des Charakters zu ändern, und keine Änderungen durch andere Methoden zwischen Anrufen vorgenommen werden. Wenn Änderungen an dem Charakter vorgenommen werden zwischen Anrufen. Dann wird diese Funktion immer sicherstellen,

Siehe auch

Parameter

humanoidDescription: HumanoidDescription

Die HumanoidDescription Instanz, die Sie so einstellen möchten, dass der Charakter übereinstimmen.

assetTypeVerification: Enum.AssetTypeVerification
Standardwert: "Default"

Rückgaben

void

ApplyDescriptionReset

void
Angehalten

Diese Funktion gibt dem Charakter das Aussehen, das dem des in HumanoidDescription passierten, auch nach außen Änderungen. Eine Kopie des passierten HumanoidDescription ist als HumanoidDescription für den 1> Class.Humanoid1> .

Diese Funktion wird immer sicherstellen, dass der Charakter die in HumanoidDescription

Parameter

humanoidDescription: HumanoidDescription

Die HumanoidDescription Instanz, die Sie so einstellen möchten, dass der Charakter übereinstimmen.

assetTypeVerification: Enum.AssetTypeVerification
Standardwert: "Default"

Rückgaben

void

PlayEmote

Angehalten

Wenn das Emote aufgrund der Tatsache, dass der emoteName nicht in der HumanoidDescription gefunden wird, nicht abgespielt werden konnte, gibt diese API einen Fehler zurück. Die API wird als wahr zurückgegeben, um anzuzeigen, dass das Emote erfolgreich abgespielt wurde.

Parameter

emoteName: string

name des emotes, das spielenwerden soll.


Rückgaben

erfolgreich gespielt.

Ereignisse

ApplyDescriptionFinished

Parameter

description: HumanoidDescription

Climbing

Feuert, wenn die Geschwindigkeit, mit der ein Humanoid klettert, sich ändert.

Humanoids kann auf Leitern, die aus Parts oder TrussParts bestehen, klettern.

Humanoids klettern bei 70% ihrer Humanoid.WalkSpeed.

Dieses Ereignis wird nicht immer mit einer Geschwindigkeit von 0 ausgelöst, wenn Humanoid die Klettere aufgibt.

Siehe auch:

Parameter

speed: number

Die Geschwindigkeit, mit der sich der Humanoid derzeit entwickelt.


Code-Beispiele

Humanoid.Climbing

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

Dieses Ereignis wird ausgelöst, wenn der Humanoid stirbt, normalerweise, wenn Humanoid.Health 0 erreicht. Dies könnte durch das Trennen ihres Kopfes von ihrem Humanoid.Torso verursacht werden, oder indirekt durch das Festlegen der Eigenschaften.

Dieses Ereignis wird nur ausgelöst, wenn das Humanoid ein Nachkommen des Workspace ist. Wenn das Dead2>Ennum.HumanoidStateType2> deaktiviert ist, wird es nicht ausgeführt.


Code-Beispiele

Humanoid.Died

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

Das FallingDown-Ereignis wird ausgelöst, wenn der Humanoid eintreten und den FallingDown verlassen hat, und das Enum.HumanoidStateType betritt.

Der Humanoid wird den GettingUp-Zustand 3 Sekunden nach dem Aktivieren des FallingDown-Zustands betreten. Wenn dies geschieht, wird dieses Ereignis mit einem 2> aktiven2> Wert von 5> false

Parameter

active: bool

Beschreibt, ob das Humanoid den FallingDown``Enum.HumanoidStateType betritt oder verlässt.


FreeFalling

Dieses Ereignis wird ausgelöst, wenn der Humanoid eintreten oder verlässt den Freefall``Enum.HumanoidStateType.

Der aktive-Parameter repräsentiert, ob das Humanoid den Freefall-Zustand betritt oder verlässt.

Obwohl der Zustand Freefall im Allgemeinen endet, wenn der Zustand Humanoid den Boden erreicht, kann dieses Ereignis mit aktivem gleichen

Parameter

active: bool

Ob das Humanoid den Freefall``Enum.HumanoidStateType betritt oder verlässt.


GettingUp

Dieses Ereignis wird ausgelöst, wenn der Humanoid den Enum.HumanoidStateType.GettingUp -Zustand betritt oder verlässt, ein Übergangszustand, der kurz nach dem Betreten des Humanoid betätigt wird, oder

Wenn ein Humanoid versucht, wieder aufzustehen, wird dieses Ereignis mit einem active -Argument von true vor kurzem nach dem erneuten Start mit einem 1> active1> -Argument von 4> force4> ausgelöst.

Um einen Humanoid zu zwingen, über zu fallen, verwenden Sie die Funktion Humanoid:ChangeState() mit Enum.HumanoidStateType.FallingDown.

Parameter

active: bool

Ob das Humanoid eintreten oder das GettingUp``Enum.HumanoidStateType verlassen wird.


HealthChanged

Dieses Ereignis wird ausgelöst, wenn sich die Humanoid.Health ändert. Es wird jedoch nicht ausgelöst, wenn die Gesundheit von einem Wert, der der Humanoid.MaxHealth entspricht, zunimmt.

Wenn Humanoid.Health null erreicht, wird das Humanoid sterben und das Humanoid.Died -Ereignis ausgelöst. Dieses Ereignis wird mit einem Wert von null ausgeführt.

Parameter

health: number

Der neue Wert von Humanoid.Health .


Code-Beispiele

Humanoid.HealthChanged

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)
Health Bar

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

Dieses Ereignis wird ausgelöst, wenn der Humanoid eintreten und den Jumping``Enum.HumanoidStateType verlassen hat.

Wenn ein Humanoid springt, wird dieses Ereignis mit einem active-Parameter von true ausgelöst, bevor kurz danach erneut mit einem

Du kannst das Springen mit der Funktion Class.Humanoid:SetStateEnabled() deaktivieren.

Parameter

active: bool

Ob das Humanoid den Jumping``Enum.HumanoidStateType betritt oder verlässt.


MoveToFinished

Dieses Ereignis wird ausgelöst, wenn das Humanoid das Ziel erreicht, das von den Humanoid.WalkToPoint und Humanoid.WalkToPart Eigenschaften angegeben wird.

Die Humanoid.WalkToPoint und Humanoid.WalkToPart Eigenschaften können individuell festgelegt werden, oder mit der Funktion Humanoid:MoveTo() verwendet werden.

Wenn der Humanoid sein Ziel innerhalb von 8 Sekunden erreicht, wird dieses Ereignis mit erreicht als wahr zurückgegeben. Wenn das Ziel nicht innerhalb von 8 Sekunden erreicht wird, stoppt der Humanoid auf dem Weg und wird falsch. Dieser Timeout kann durch Aufrufen von 1>Class.Humanoid

Parameter

reached: bool

EinBoolean, der anzeigt, ob das erreichte Humanoid sein Ziel ist. True ist, wenn das erreichte Humanoid sein Ziel erreicht, 2> false2> ist, wenn der Walk vor dem Ziel abgelaufen ist.


Code-Beispiele

Humanoid MoveTo Without Time out

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

Dieses Ereignis wird ausgelöst, wenn der Humanoid eintreten oder verlässt die PlatformStanding``Enum.HumanoidStateType.

Während der Humanoid in PlatformStanding-Zustand ist, wird die Humanoid.PlatformStand -Eigenschaft 2>wahr2> sein.

Während Humanoid.PlatformStand auf wahr eingestellt ist, wird die Humanoid nicht Verschiebungswerkzeugkönnen. Weitere Informationen finden Sie auf der Seite für 1> Class.Humanoid.PlatformStand1>.

Die PlatformStand Enum.HumanoidStateType wurde mit der jetzt deaktivierten Platform verbunden. Trotzdem kann sie immer noch von Entwicklern verwendet werden.

Parameter

active: bool

Ob das Humanoid den PlatformStanding``Enum.HumanoidStateType betritt oder verlässt.


Ragdoll

Dieses Ereignis wird ausgelöst, wenn der Humanoid eintreten oder verlässt den Ragdoll``Enum.HumanoidStateType.

Der active -Parameter wird den Wert true oder false haben, um anzugeben, dass Sie eingeben oder verlassen.

Verwenden Sie Humanoid:SetStateEnabled() , um den "GettingUp"-Zustand zu deaktivieren, um im Ragdoll-Zustand zu bleiben.

Siehe auch:

Parameter

active: bool

Ob das Humanoid den Ragdoll``Enum.HumanoidStateType betritt oder verlässt.


Running

Dieses Ereignis wird ausgelöst, wenn die Geschwindigkeit, mit der ein Humanoid Änderungen vornimmt, erhöht wird.

Während Sie Humanoids bedecken, haben sie in der Regel ihre Humanoid.WalkSpeed in Studs pro Sekunde.

Wenn das Humanoid dieses Ereignis aufhört, wird es mit einer Geschwindigkeit von 0 ausgelöst.

Siehe auch:

Parameter

speed: number

Die Geschwindigkeit, mit der die Humanoid läuft.


Code-Beispiele

Humanoid Running

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

Dieses Ereignis wird ausgelöst, wenn ein Humanoid entweder in oder auf einem Seat oder VehicleSeat sitzt.

Wenn ein Charakter mit einem Sitz in Kontakt kommt, wird er an den Sitz angehängt und eine Sitz-Animation wird abgespielt. For more information on this, see the Seat page.

  • Wenn der Charakter sich setzt, wird der active -Parameter wahr und currentSeatPart ist der Sitz, in dem sie sitzen.
  • Wenn der Charakter aus einem Sitz aufsteht, wird der active -Parameter falsch sein und currentSeatPart nil sein.

Siehe auch:

  • Humanoid.Sit , was anzeigt, ob ein Humanoid derzeit sitzt
  • Humanoid.SeatPart , was anzeigt, auf welchem Sitz ein Humanoid derzeit sitzt, wenn vorhanden.

Parameter

active: bool

Wahr, wenn das Humanoid sitzt.

currentSeatPart: BasePart

Der Sitz, auf dem der Humanoid sitzt, wenn er sich setzt.


Code-Beispiele

Finding a Player's Seat

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

Dieses Ereignis wird ausgelöst, wenn der Zustand des Humanoid geändert wird.

Da es keinen "untätigen" menschlichen Zustand gibt, solltest du stattdessen das Humanoid.Running -Ereignis verwenden oder auf das RootPart -Teil hören, um herauszufinden, wann das Velocity stillsteht.

Siehe auch

Parameter

Der frühere eingebendes Menschenoiden.

Der aktuelle eingebendes Humanoiden.


Code-Beispiele

Jumping Particles

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)
Jump Cooldown

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

Das StateEnableChanged-Ereignis wird ausgelöst, wenn Humanoid:SetStateEnabled() auf dem Humanoid aufgerufen wird.

Parameter umfassen die Enum.HumanoidStateType im Fragezeichen zusammen mit einemBoolean, der anzeigt, ob dieser Zustand jetzt aktiviert ist.

Siehe auch:

Parameter

Der Enum.HumanoidStateType für den aktivierten Zustand.

isEnabled: bool

Wahr, wenn der Zustand jetzt aktiviert ist.


Code-Beispiele

Humanoid State Change Detector

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

Dieses Ereignis wird nicht ausgelöst, wenn Humanoid mit einem Stab verprügelt wird, und sollte nicht von Entwicklern verwendet werden

Dieses Ereignis wird ausgelöst, wenn der Humanoid eintreten oder verlässt den StrafingNoPhysics``Enum.HumanoidStateType.

Wenn der Humanoid in den StrafingNoPhysics-Zustand eingibt, wird dieses Ereignis mit einem aktiven Parameter von 2>wahr2> ausgelöst. Das Ereignis wird erneut mit einem 5>aktiven5> Equalizer von

Dieses Ereignis ist mit dem StrafingNoPhysics``Class.Humanoid Zustand verbunden und verursacht nicht Feuer, wenn der 1> Class.Humanoid1> in Richtung der Richtung bewegt wird, in die er zeigt. Dieser Zust

Parameter

active: bool

Ob das Humanoid den StrafingNoPhysics``Enum.HumanoidStateType betritt oder verlässt.


Swimming

Dieses Ereignis wird ausgelöst, wenn die Geschwindigkeit, mit der ein Humanoid in Terrain-Wasser schwimmt, sich ändert.

Humanoids schwimmen bei 87,5% ihrer Humanoid.WalkSpeed.

Dieses Ereignis wird nicht immer mit einer Geschwindigkeit von 0 abgefeuert, wenn Humanoid das Schwimmen aufhört.

Siehe auch:

Parameter

speed: number

Die Geschwindigkeit, mit der Humanoid derzeit schwimmt.


Touched

Dieses Ereignis wird ausgelöst, wenn eines der Limbos des Menschen in Berührung mit einem anderen BasePart kommt. Das BasePart, mit dem das Limbo selbst berührt wird, wird gegeben.

Dieses Ereignis wird nicht ausgelöst, wenn Gliedmaßen, die zu der Humanoid gehören, in Kontakt kommen.

Alternativen

Obwohl das Ereignis Humanoid.Touched nützlich ist, sollten Sie überlegen, ob es Alternativen gibt, die besser Ihren Anforderungen entsprechen.

  • In den meisten Fällen ist es ratsam, ein BasePart.Touched -Ereignis für BaseParts zu verwenden, anstatt, da das Class.Humanoid.Touched
  • Wenn Sie versuchen, zu arbeiten, wenn der Humanoid auf dem Boden gelandet ist, ist das Ereignis Humanoid.StateChanged angemessen. Alternativ können Sie Humanoid.FloorMaterial überprüfen, um zu sehen, ob der Humanoid auf irgendeinem nicht-luftigen Material steht.

Notizen

Parameter

touchingPart: BasePart

Die BasePart hat sich mit dem Humanoid in Kontakt gebracht.

humanoidPart: BasePart

Das Glied des Humanoid, das berührt wurde.


Code-Beispiele

Midas Touch

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)