Empty
Empty
Empty
CFrame (Coordinate Frame) is een gegevenstype in Roblox dat de positie en oriëntatie van objecten in 3D-ruimte vertegenwoordigt. Door te leren hoe je CFrames kunt maken en manipuleren, kun je precieze controle krijgen over de plaatsing en rotatie van onderdelen en modellen in je games.
Positie | De locatie van het object in de 3D-wereld. |
Oriëntatie | De rotatie van het object in de 3D-wereld. |
CFrame Voorbeeld
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 (Wereldruimte vs Objectruimte)
Wereldruimte
Wereldruimte verwijst naar het globale coördinatensysteem van de gamewereld.
Empty
Empty
Empty
- De positie van een punt wordt gedefinieerd ten opzichte van een vast oorsprongspunt in de wereld.
- De positie van een punt wordt gedefinieerd ten opzichte van een vast oorsprongspunt in de wereld.
- Transformaties (zoals translatie, rotatie en schaalverandering) worden toegepast ten opzichte van de oorsprong van de wereld.
- Coördinaten in Wereldruimte zijn absoluut, wat betekent dat ze niet worden beïnvloed door de positie of oriëntatie van een ouder of andere objecten.
Objectruimte
Objectruimte, ook bekend als lokale ruimte, verwijst naar het coördinatensysteem dat relatief is aan een object.
Empty
Empty
Empty
- De positie van een punt wordt gedefinieerd ten opzichte van de oorsprong van het object (niet de wereld oorsprong).
- De positie van een punt wordt gedefinieerd ten opzichte van de oorsprong van het object (niet de oorsprong van de wereld).
- Transformaties worden toegepast ten opzichte van de assen van het object zelf, die kunnen zijn geroteerd en geschaald ten opzichte van de assen van de wereld.
- Dit is vooral nuttig bij het werken met kindobjecten in een hiërarchie, omdat hun transformaties zijn gebaseerd op de positie, oriëntatie en schaal van hun ouderobject.
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
Als u deze tutorial nuttig vond en mijn werk wilt ondersteunen, overweeg dan om mij een kop koffie te kopen.
Hartelijk dank voor uw steun!
Koop een kop koffie voor mij