Empty
Empty
Empty
CFrame (Koordinatenrahmen) ist ein Datentyp in Roblox, der die Position und Orientierung von Objekten im 3D-Raum darstellt. Durch das Verständnis, wie man CFrames erstellt und manipuliert, können Sie eine präzise Kontrolle über die Platzierung und Drehung von Teilen und Modellen in Ihren Spielen erreichen.
Position | Der Standort des Objekts in der 3D-Welt. |
Ausrichtung | Die Drehung des Objekts in der 3D-Welt. |
CFrame-Beispiel
Empty
Empty
Empty
local myCFrame = CFrame.new(10, 5, -3)
Empty
Empty
Empty
local part = script.Parent
part.Position = Vector3.new(0, 5, 0)
-- Move the part to a new position using CFrame
part.CFrame = CFrame.new(10, 5, -10)
Roblox Studio
Empty
Empty
Empty
local part = script.Parent
part.Position = Vector3.new(0, 0.5, 0)
-- Rotate the part 45 degrees around the Y-axis
part.CFrame = CFrame.new(0, 0.5, 0) * CFrame.Angles(0, math.rad(45), 0)
Roblox Studio
Empty
Empty
Empty
local part = script.Parent
part.Position = Vector3.new(0, 0.5, 0)
-- Move the part to (10, 5, -3) and rotate it 45 degrees around the Y-axis
part.CFrame = CFrame.new(10, 5, -3) * CFrame.Angles(0, math.rad(45), 0)
Roblox Studio
Empty
Empty
Empty
local part = script.Parent
part.Position = Vector3.new(0, 2.5, 0)
-- Make the part look at the point (10, 2.5, -3)
local targetPosition = Vector3.new(10, 2.5, -3)
part.CFrame = CFrame.new(part.Position, targetPosition)
Roblox Studio
CFrame (Weltkoordinaten vs. Objektkoordinaten)
Weltkoordinaten
Weltkoordinaten beziehen sich auf das globale Koordinatensystem der Spielwelt.
Empty
Empty
Empty
- Die Position eines Punktes wird relativ zu einem festen Ursprung der Welt definiert.
- Die Position eines Punktes wird relativ zu einem festen Ursprung der Welt definiert.
- Transformationen (wie Translationen, Drehungen und Skalierungen) werden relativ zum Ursprung der Welt angewendet.
- Koordinaten im Weltkoordinatensystem sind absolut, das heißt, sie werden nicht von der Position oder Orientierung eines Elternteils oder anderer Objekte beeinflusst.
Objektkoordinaten
Objektkoordinaten, auch als lokaler Raum bekannt, beziehen sich auf das Koordinatensystem, das relativ zu einem Objekt ist.
Empty
Empty
Empty
- Die Position eines Punktes wird relativ zum Ursprung des Objekts (nicht zum Ursprung der Welt) definiert.
- Die Position eines Punktes wird relativ zum Ursprung des Objekts (nicht zum Ursprung der Welt) definiert.
- Transformationen werden relativ zu den eigenen Achsen des Objekts angewendet, die im Vergleich zu den Achsen der Welt gedreht und skaliert sein können.
- Dies ist besonders nützlich beim Umgang mit untergeordneten Objekten in einer Hierarchie, da ihre Transformationen auf der Position, Orientierung und Skalierung des übergeordneten Objekts basieren.
Empty
Empty
Empty
-- Get a reference to the parent part
local parentPart = script.Parent
-- Function to create a child part and set its position using local CFrame
local function createChildPart()
-- Create the child part
local childPart = Instance.new("Part")
childPart.Size = Vector3.new(2, 2, 2)
childPart.Anchored = true
childPart.Parent = parentPart
childPart.Name = "Child"
-- Position the child part relative to the parent part using Local CFrame
local partCFrameLocal = CFrame.new(2, 2, 0) -- Local space offset
childPart.CFrame = parentPart.CFrame * partCFrameLocal -- Set the child part's CFrame
print("Child part created with Local Position:", partCFrameLocal.Position)
-- Print parent's world space position
print("Parent Part's World Position:", parentPart.CFrame.Position)
-- Demonstrating ToWorldSpace and ToObjectSpace
local modelCFrameWorld = parentPart.CFrame -- Parent's world CFrame
local partCFrameWorld = modelCFrameWorld:ToWorldSpace(partCFrameLocal)
print("World Position:", partCFrameWorld.Position) -- Prints the position of the part in world space
local recalculatedPartCFrameLocal = modelCFrameWorld:ToObjectSpace(partCFrameWorld)
print("Recalculated Local Position:", recalculatedPartCFrameLocal.Position) -- Should match partCFrameLocal.Position
end
-- Call the function to create the child part
createChildPart()
Roblox Studio
Wenn Sie dieses Tutorial hilfreich fanden und meine Arbeit unterstützen möchten, können Sie mir gerne einen Kaffee spendieren.
Vielen Dank für Ihre Unterstützung!
Kaufen Sie mir einen Kaffee