A CFrame, ou Coordinate Frame, é um DataType que contém dados posicionais e rotacionais. Ele pode ser usado para posicionar BaseParts com precisão por meio de sua propriedade CFrame, que, ao contrário de Position, permite que a peça seja girada.
Você pode posicionar uma peça como faria usando a propriedade Position.
part.CFrame = CFrame.new (1, 6, 2) - Coloca a peça no ponto {1, 6, 2) na área de trabalho
Para criar um CFrame girado na origem, use:
part.CFrame = CFrame.Angles (math.rad (45), math.rad (90), math.rad (180))
É importante notar que as rotações não são aplicadas simultaneamente, mas sequencialmente. Portanto, o comando anterior gira no eixo X da peça, depois no eixo Y da peça e, em seguida, no eixo Z da peça.
Para obter uma explicação dos parâmetros, consulte radianos.
Um fato interessante é que qualquer instância com uma propriedade do tipo CFrame, por exemplo, a propriedade CFrame de um objeto BasePart, fica oculta no painel de propriedades. A propriedade "Value" de um CFrameValue também fica oculta, necessitando ser modificada a partir de um Script, Plugin ou através da Linha de Comando.
Conteúdo
- 1 construtores
- 2 Propriedades
- Métodos 3
- 4 operadores
Construtores
CFrames são um dos muitos DataTypes disponíveis no Roblox Lua. Um CFrame pode ser criado usando um dos muitos construtores. No entanto, observe que, ao contrário da propriedade de orientação de uma BasePart, ela aceita argumentos rotacionais em radianos em vez de graus.
Construtor | Descrição |
---|---|
CFrame.new () |
Cria uma identidade CFrame |
CFrame.new (Vector3 v) |
Cria CFrame a partir do deslocamento v |
CFrame.new (Vector3 v) |
Cria CFrame a partir do deslocamento v |
CFrame.new (Número x, Número y, Número z) |
Cria CFrame a partir do deslocamento (x, y, z) |
CFrame.new (Número x, Número y, Número z, |
Cria CFrame a partir do deslocamento (x, y, z) e quaternion (qx, qy, qz, qw) |
CFrame.new (Número x, Número y, Número z, |
Cria CFrame a partir do deslocamento (x, y, z) e matriz de rotação (R00, R01, R02, R10, R11, R12, R20, R21, R22) |
CFrame.fromEulerAnglesXYZ (Número x, Número y, Número z) orCFrame.Angles (Número x, Número y, Número z) orCFrame.fromOrientation (Número x, Número y, Número z) |
Cria um CFrame girado em (0,0,0) girado em torno dos três eixos na ordem (em relação ao CFrame). Ângulos em radianos |
CFrame.fromEulerAnglesYXZ (Número rx, número ry, Número rz) |
Cria um CFrame em (0,0,0) girado em torno dos três eixos na ordem Y, Z, X |
CFrame.fromAxisAngle (Vector3 v, Número r) |
Cria um CFrame girado a partir de um vetor de unidade e uma rotação em radianos |
CFrame.lookAt (Vector3 position, Number lookAt) |
Cria um CFrame cuja posição é position e cujo lookVector é direcionado ou olhando para lookAt |
Propriedades
Associado | Descrição |
---|---|
Posição Vector3 | o componente posicional do CFrame |
Numero X | o componente posicional do CFrame no eixo X |
Numero Y | o componente posicional do CFrame no eixo Y |
Numero Z | o componente posicional do CFrame no eixo Z |
Vector3 LookVector | o vetor direcional frontal do CFrame |
Vector3 RightVector | o vetor direcional voltado para a direita do CFrame |
Vector3 UpVector | o vetor direcional voltado para cima do CFrame |
Vector3 XVector | a primeira coluna na matriz de rotação do CFrame |
Vector3 YVector | a segunda coluna na matriz de rotação do CFrame |
Vector3 ZVector | a terceira coluna na matriz de rotação do CFrame |
Métodos
Método | Descrição |
---|---|
CFrame CFrame: Inverso () |
retorna o inverso do CFrame |
CFrame CFrame: ToWorldSpace (CFrame c) |
retorna um CFrame transformado de coordenadas Object em World. Também funciona com tuplas |
CFrame CFrame: ToObjectSpace (CFrame c) |
retorna um CFrame transformado de coordenadas de mundo em coordenadas de objeto. Também funciona com tuplas |
Vector3 CFrame: PointToWorldSpace (Vector3 v) |
retorna um Vector3 transformado de coordenadas Object em World. Também funciona com tuplas |
Vector3 CFrame: PointToObjectSpace (Vector3 v) |
retorna um Vector3 transformado de coordenadas de mundo em coordenadas de objeto. Também funciona com tuplas |
Vector3 CFrame: VectorToWorldSpace (Vector3 v) |
retorna um Vector3 girado das coordenadas do objeto para o mundo. Também funciona com tuplas |
Vector3 CFrame: VectorToObjectSpace (Vector3 v) |
retorna um Vector3 girado das coordenadas do mundo para o objeto. Também funciona com tuplas |
Tuple CFrame: GetComponents () orTupla CFrame: componentes () |
retorna todos os componentes do CFrame na seguinte ordem:
x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 |
Tupla CFrame: ToOrientation () orTupla CFrame: ToEulerAnglesYXZ () |
retorna ângulos aproximados da orientação da peça |
Tupla CFrame: ToEulerAnglesXYZ () |
retorna os ângulos aproximados da orientação da peça ordenados como Z, Y, X |
Número CFrame: ToAxisAngle () |
retorna a orientação do CFrame na representação do ângulo do eixo |
CFrame CFrame: Orthonormalize () |
retorna um CFrame que passou pelo processo de Gram-Schmidt |
Operadores
operador | Descrição |
---|---|
CFrame * CFrame | retorna a composição de dois CFrames |
CFrame * Vector3 | retorna Vector3 transformado de Coordenadas de objeto em coordenadas do mundo |
CFrame + Vector3 | retorna CFrame traduzido por Vector3 |
CFrame - Vector3 | retorna CFrame traduzido por -Vector3 |
Tipos de dados | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tipos básicos de Lua | zero · booleano · número · corda · função · dados do usuário · mesa | ||||||||||||||||||||||||||||||
Tipos Roblox |
| ||||||||||||||||||||||||||||||
Tipos C ++ | bool · duplo · flutuar · int · int64 · anular |