Humanoid
*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
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
Setzt, ob der Charakter automatisch springt, wenn sie ein Hindernis als Spieler auf einem mobilen Gerät treffen.
AutoRotate setzt, ob die Humanoid automatisch in Richtung des zu bewegenden Ausrichtungsfelds gedreht werden soll oder nicht.
Wenn aktiviert, verursacht AutomaticScalingEnabled, dass die Größe des Charakters in der Reaktion auf die Werte in der Kinderskalierung des Menschen verändert wird.
Bestimmt, ob die Gelenke des Humanoiden aufbrechen, wenn sie im Enum.HumanoidStateType.Dead Zustand sind.
Ein Offset wird auf die Kamera angewendet, wenn ihre KameraSubject auf diesen Humanoid eingestellt ist.
Steuert das Verhalten der Reichweite des menschlichen Namens und der Gesundheitsanzeige.
Setzt den Text eines Humanoid, der über ihrem Kopf angezeigt wird.
Beschreibt das Enum.Material, auf dem das Humanoid derzeit steht. Wenn das Humanoid nicht auf einem beliebigen anderen Ding steht, wird der Wert dieser Eigenschaft 2>Air2> sein.
Beschreibt die aktuelle Gesundheit des Humanoid auf der Reichweite [0, Humanoid.MaxHealth].
Wird in Zusammenarbeit mit der DisplayDistanceType Eigenschaft verwendet, um die Distanz zu kontrollieren, von der die Gesundheitsleiste eines Humanoids sichtbar ist.
Steuerelemente, wenn die Gesundheitsleiste des Humanoiden angezeigt werden darf.
Bestimmt die Entfernung vom Boden, zu der der Humanoid.RootPart sein soll.
Wenn true , springt der Humanoid mit einer nach oben gerichteten Kraft.
Bietet Kontrolle über die Höhe, zu der sich die Humanoid Sprünge begeben.
Bestimmt, wie viel nach oben Kraft angewendet wird auf das Humanoid beim Springen.
Der maximale Wert eines Humanoiden Health .
Der maximale Steigungswinkel, auf dem ein Menschoid ohne auszurutschen laufen kann.
Beschreibt die Richtung, in die der Humanoid geht.
Verwendet in Kombination mit der Humanoid.DisplayDistanceType Eigenschaft, um die Entfernung, von der der Name eines Humanoids gesehen werden kann, zu kontrollieren.
Steuert, ob die Name und die Gesundheitsleiste eines Humanoiden hinter Wänden oder anderen Objekten angezeigt werden kann.
Bestimmt, ob das Humanoid derzeit im Enum.HumanoidStateType.PlatformStanding Zustand ist.
Ermöglicht es Entwicklern, das Verhalten zu deaktivieren, bei dem ein Spieler Character|character stirbt, wenn der Nacken Motor6D entfernt oder getrennt wird, sogar für einen Moment.
Beschreibt, ob dies Humanoid die Erbeutung der R6-Charakter-Rig verwendet, oder die neue R15-Charakter-Rig verwendet.
Ein Verweis auf das HumanoidRootPart -Objekt des Humanoiden.
Eine Verweisung auf den Sitz, auf dem ein Humanoid derzeit sitzt, wenn vorhanden.
Beschreibt, ob das Humanoid derzeit sitzt.
Beschreibt die 3D-Position, in der der Player die letzte mit der Humanoid in der Welt, die mit einem Tool verwendet wird, kontrolliert.
Bestimmt, ob die JumpHeight (falsch) oder Humanoid.JumpPower (wahr) Eigenschaft verwendet wird.
Beschreibt die maximale Bewegungsgeschwindigkeit des Humanoiden in Studs pro Sekunde.
Eine Verweisung auf ein Teil, dessen Position von einem Humanoid versucht wird.
Die Position, die ein Humanoid versucht zu erreichen, nach einem Anruf zu Humanoid:MoveTo() ist gemacht.
Methoden
Befestigt den angegebenen Accessory an der übergeordnetes Teildes Humanoiden.
Baue einen Baum von Motor6D Joints durch das Zusammenfügen von Attachment Objekten in einem menschlichen Charakter zusammen.
Setzt den Humanoid , um den gegebenen Enum.HumanoidStateType zu betreten.
Gibt eine Reihe von Accessory Objekten zurück, die der Humanoid derzeit trägt.
Kehrt eine Kopie des zwischengespeicherten HumanoidDescription des Humanoid zurück, der seine aktuelle Erscheinungsbild beschreibt.
Passieren Sie eine Körperteile an diese Funktion (die Körperteile sollten ein Kind von Humanoid und ein Kind von Model sein), um die Enum.BodyPartR15 .
Gibt die Enum.Limb zurück, der mit dem angegebenen Part verbunden ist.
Kehrt den aktuellen Enum.HumanoidStateType des Humanoid zurück.
Gibt zurück, ob ein Enum.HumanoidStateType``Class.Humanoid aktiviert ist.
Verursacht die Humanoid , in die angegebene Richtung zu gehen.
Verursacht, dass der Humanoid versucht, zu dem angegebenen Ort zu gehen, indem er die Humanoid.WalkToPoint und Humanoid.WalkToPart Eigenschaften setzt.
Entfernt alle Accessory Objekte, die von der übergeordnetes Teildes Menschen getragen werden.
Ersetze dynamisch einen Humanoid-Körperteil durch einen anderen Teil.
Setzt, ob ein bestimmtes Enum.HumanoidStateType aktiviert ist für das Humanoid.
Verringert die Humanoid.Health des Humanoid durch die angegebene Amount, wenn er nicht durch einen 2>Class.ForceField2> geschützt ist.
Entfernt alle Tool derzeit ausgerüsteten durch den Humanoid .
- ApplyDescription(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
Lässt den Charakter so aussehen, wie der in HumanoidDescription passiert.
- ApplyDescriptionReset(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
Lässt den Charakter so aussehen, wie der in HumanoidDescription passt, auch nach äußeren Änderungen.
Spielt Emotes und gibt zurück, wenn es erfolgreich ausgeführt wurde.
Ereignisse
Feuert, wenn die Geschwindigkeit, mit der ein Humanoid klettert, sich ändert.
Feuert ab, wenn der Humanoid stirbt.
Feuert, wenn der Humanoid eintreten oder verlässt den FallingDown``Enum.HumanoidStateType.
Feuert, wenn der Humanoid eintreten oder verlässt den Freefall``Enum.HumanoidStateType.
Feuert, wenn der Humanoid eintreten oder verlässt den GettingUp``Enum.HumanoidStateType.
Feuert, wenn sich die Humanoid.Health verändert (oder wenn die Humanoid.MaxHealth festlegenist).
Feuert, wenn der Humanoid eintreten und den Jumping``Enum.HumanoidStateType verlässt.
Feuert, wenn das Humanoid das Ziel Humanoid:MoveTo() erreicht hat.
Feuert, wenn der Humanoid eintreten oder verlässt den PlatformStanding``Enum.HumanoidStateType.
Feuert, wenn der Humanoid eintreten oder verlässt den Ragdoll``Enum.HumanoidStateType.
Feuert, wenn die Geschwindigkeit, mit der ein Humanoid Änderungen durchführt, erhöht wird.
Ausgelöst, wenn ein Humanoid entweder in einem Seat oder VehicleSeat sitzt oder aufsteht.
Feuert, wenn der Zustand des Humanoid geändert wird.
Feuert, wenn Humanoid:SetStateEnabled() auf dem Humanoid aufgerufen wird.
Feuert, wenn der Humanoid eintreten oder verlässt den StrafingNoPhysics``Enum.HumanoidStateType.
Feuert, wenn die Geschwindigkeit, mit der ein Humanoid in Terrain Wasser wechseln, ändert sich.
Feuert, wenn eines der Limben des Humanoiden in Berührung mit einem anderen BasePart kommt.
Eigenschaften
AutoJumpEnabled
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
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
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>
RotationType | Verhalten | Kontext |
---|
Code-Beispiele
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
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
Bestimmt, ob die Gelenke des Humanoiden zerbrechen, wenn sie im Enum.HumanoidStateType.Dead Zustand sind. Standard ist auf true.
CameraOffset
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
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
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
local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100
DisplayName
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
FloorMaterial
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
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
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.
HealthDisplayType
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
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
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
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
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
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
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
local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30
MoveDirection
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
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
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
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
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
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
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.
RigType
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
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
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:
- Für eineBoolean, die angibt, ob das Humanoid derzeit sitzt oder nicht, siehe Humanoid.Sit
Sit
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
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
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
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.
WalkToPart
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
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
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
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
Rückgaben
Code-Beispiele
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
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
Code-Beispiele
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
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:
- Das Festlegen des Zustands auf Enum.HumanoidStateType.Swimming , wenn der Humanoid nicht im Wasser ist, verursacht, dass er automatisch auf Enum.HumanoidStateType.GettingUp festgelegt wird.
- Da er nicht verwendet wird, wird das Festlegen des Zustands auf Enum.HumanoidStateType.PlatformStanding den Humanoid-Zustand automatisch auf Enum.HumanoidStateType.Running festlegen.
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.
Rückgaben
Code-Beispiele
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
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 thenlocal humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal tool = workspace:FindFirstChild("Tool")if tool thenhumanoid:EquipTool(tool)endendend
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:
- Um Werkzeuge abzulegen, verwenden Sie Humanoid:UnequipTools()
Parameter
Rückgaben
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
Code-Beispiele
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
- Players:GetHumanoidDescriptionFromUserId() , das einen HumanoidDescription beschreibt, der den Avatar für den Benutzer beschreibt, der passt.
- Players:GetHumanoidDescriptionFromOutfitId() , der eine HumanoidDescription zurückgibt, deren Werte auf diejenigen des in der Objektübereinstimmen.
- Player:LoadCharacterWithHumanoidDescription() , der einen Spieler mit dem Aussehen des in HumanoidDescription .
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
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 R15print(humanoid:GetLimb(character.LeftUpperLeg)) -- enum.Limb.LeftLegprint(humanoid:GetLimb(character.LeftLowerLeg)) -- enum.Limb.LeftLegprint(humanoid:GetLimb(character.LeftFoot)) -- enum.Limb.LeftLeg-- Für R6print(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
Rückgaben
Code-Beispiele
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
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
Der aktuelle Enum.HumanoidStateType von der Humanoid .
Code-Beispiele
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
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:
- Für ein Ereignis, das ausgelöst wird, wenn ein Humanoid-Zustand aktiviert oder deaktiviert wird, siehe Humanoid.StateEnabledChanged
- Um einen Humanoid-Status zu aktivieren oder zu deaktivieren, verwenden Sie Humanoid:SetStateEnabled()
Parameter
Der gegebene Enum.HumanoidStateType .
Rückgaben
Ob der angegebene Enum.HumanoidStateType aktiviert ist.
Code-Beispiele
local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false
Move
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
Die Richtung, in die Sie gehen.
Setzen Sie auf true wenn der moveDirection -Parameter als relativer zu der CurrentCamera zu nehmen ist.
Rückgaben
Code-Beispiele
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
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:
Der Charakter kommt an seinem Ziel an.
Der Character wird festgehalten und der achtzehnte Timer läuft ab.
Der Wert von Humanoid.WalkToPoint oder Humanoid.WalkToPart ändert sich.
Ein Skript ruft Humanoid:Move() mit einem neuen moveDirection-Parameter auf.
Parameter
Die Position, zu der Humanoid.WalkToPoint zu setzen ist.
Rückgaben
Code-Beispiele
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
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
Code-Beispiele
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.
Die Class.Part``Class.Instance , die der Figur zugewiesen wird.
Rückgaben
SetStateEnabled
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.
true wenn state aktiviert werden soll, false wenn 0> state0> deaktiviert werden soll.
Rückgaben
Code-Beispiele
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
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
Der Schaden oder Betrag, der von der Humanoid.Health abgezogen werden soll.
Rückgaben
Code-Beispiele
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
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:
- Um stattdessen ein Tool auszurüsten, verwende Humanoid:EquipTool()
Rückgaben
Code-Beispiele
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
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
- Humanoid:GetAppliedDescription() , die die HumanoidDescription derzeit auf dem Humanoid angewendet zurückgibt.
- Players:GetHumanoidDescriptionFromUserId() , das einen HumanoidDescription beschreibt, der den Avatar für den Benutzer beschreibt, der passt.
- Players:GetHumanoidDescriptionFromOutfitId() , der eine HumanoidDescription zurückgibt, deren Werte auf diejenigen des in der Objektübereinstimmen.
- Player:LoadCharacterWithHumanoidDescription() , der einen Spieler mit dem Aussehen des in HumanoidDescription .
Parameter
Die HumanoidDescription Instanz, die Sie so einstellen möchten, dass der Charakter übereinstimmen.
Rückgaben
ApplyDescriptionReset
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
Die HumanoidDescription Instanz, die Sie so einstellen möchten, dass der Charakter übereinstimmen.
Rückgaben
PlayEmote
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
name des emotes, das spielenwerden soll.
Rückgaben
erfolgreich gespielt.
Ereignisse
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:
- Für das Schwimmen und Laufen siehe die Humanoid.Swimming und Humanoid.Running Ereignisse
- Du kannst auch erkennen, wenn ein Humanoid mit dem Ereignis Humanoid.StateChanged klettert
- Du kannst Klettern mit der Funktion Class.Humanoid:SetStateEnabled() deaktivieren
Parameter
Code-Beispiele
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
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
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
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
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
Der neue Wert von Humanoid.Health .
Code-Beispiele
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
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
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
Code-Beispiele
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
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:
- Humanoid.FallingDown für das Ereignis Humanoid mit dem Zustand FallingDown, der sich ähnelt 0> Ragdoll0>
Parameter
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:
- Für Schwimmen und Klettern siehe die Humanoid.Swimming und Humanoid.Climbing Ereignisse
- Sie können auch erkennen, wenn ein Humanoid mit dem Ereignis Humanoid.StateChanged läuft
Parameter
Code-Beispiele
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
Code-Beispiele
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
- Humanoid:GetState() und Humanoid:ChangeState() um den Zustand zu erhalten und zu setzen.
- Humanoid:SetStateEnabled() um bestimmte Zustände zu aktivieren und zu deaktivieren.
Parameter
Der frühere eingebendes Menschenoiden.
Der aktuelle eingebendes Humanoiden.
Code-Beispiele
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
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:
- Um zu finden, ob ein Zustand aktiviert ist, verwenden Sie Humanoid:GetStateEnabled()
- Um Zustandsänderungen von Humanoid zu hören, verwenden Sie Humanoid.StateChanged
Parameter
Der Enum.HumanoidStateType für den aktivierten Zustand.
Wahr, wenn der Zustand jetzt aktiviert ist.
Code-Beispiele
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
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:
- Für Lauf und Klettern siehe die Humanoid.Running und Humanoid.Climbing Ereignisse
- Du kannst auch erkennen, wenn ein Humanoid mit dem Ereignis Humanoid.StateChanged schwimmt
- Du kannst Schwimmen mit der Funktion Humanoid:SetStateEnabled()
Parameter
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
- Das Verbinden mit diesem Ereignis wird dazu führen, dass ein TouchTransmitter in jedem Gliedmaß erstellt wird.
- Es gibt derzeit keine Äquivalente von BasePart.TouchEnded für Humanoids .
Parameter
Code-Beispiele
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)