Empty
Empty
Empty
CFrame (Coordinate Frame) è un tipo di dato in Roblox che rappresenta la posizione e l'orientamento degli oggetti nello spazio 3D. Comprendendo come creare e manipolare i CFrame, puoi ottenere un controllo preciso sul posizionamento e la rotazione di parti e modelli nei tuoi giochi.
Posizione | La posizione dell'oggetto nel mondo 3D. |
Orientamento | La rotazione dell'oggetto nel mondo 3D. |
Esempio di CFrame
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 (Spazio Mondiale vs Spazio Oggetto)
Spazio Mondiale
WorldSpace si riferisce al sistema di coordinate globale del mondo di gioco.
Empty
Empty
Empty
- La posizione di un punto è definita rispetto a un'origine fissa del mondo.
- La posizione di un punto è definita rispetto a un'origine fissa del mondo.
- Le trasformazioni (come traduzioni, rotazioni e scalature) sono applicate rispetto all'origine del mondo.
- Le coordinate in WorldSpace sono assolute, il che significa che non sono influenzate dalla posizione o dall'orientamento di alcun genitore o altro oggetto.
Spazio Oggetto
ObjectSpace, noto anche come spazio locale, si riferisce al sistema di coordinate relativo a un oggetto.
Empty
Empty
Empty
- La posizione di un punto è definita rispetto all'origine dell'oggetto (non all'origine del mondo).
- La posizione di un punto è definita rispetto all'origine dell'oggetto (non all'origine del mondo).
- Le trasformazioni sono applicate rispetto agli assi propri dell'oggetto, che possono essere ruotati e scalati rispetto agli assi del mondo.
- Questo è particolarmente utile quando si trattano oggetti figli in una gerarchia, poiché le loro trasformazioni si basano sulla posizione, orientamento e scala dell'oggetto genitore.
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
Se hai trovato utile questo tutorial e desideri supportare il mio lavoro, considera di offrirmi un caffè.
Grazie mille per il tuo supporto!
Offrimi un caffè