Vector
Vector에 대한 정보를 다루는 객체에요.
연산자
Vector = Vector + Vector
두 벡터 값을 더해서 그 값을 리턴해줘요.
Vector = Vector - Vector
앞에 벡터에서 뒤의 벡터를 뺀 값을 리턴해줘요.
Vector = Vector * Vector
두 벡터 값을 곱해서 그 값을 리턴해줘요.
Vector = Vector * number
벡터와 number 값을 곱해서 그 값을 리턴해줘요.
Vector = -Vector
벡터의 값을 부정으로 만들어서 그 값을 리턴해줘요.
Vector = Vector + number
벡터의 값과 number값을 더해서 그 값을 리턴해줘요.
Vector = Vector - number
벡터의 값에서 number값을 뺀 값을 리턴해줘요.
Vector = Vector / number
벡터의 값에서 number을 나눈 값을 리턴해줘요. (0으로는 나눌 수 없어요.)
속성
Size
벡터의 크기에요.
-- 샘플 --
local pos = Vector.new(200, -100, 900)
print(pos.Size)
SqrSize
-- 샘플 --
local pos = Vector.new(200, -100, 900)
print(pos.SqrSize)
X
X 좌표에요.
Y
Y 좌표에요.
Z
Z 좌표에요.
-- 샘플 --
local pos1 = Vector.new(1, 2, 3) --pos1.X = 1, pos1.Y = 2, pos1.Z = 3로 할당돼요.
local pos2 = Vector.new(3) --pos2.X = 3, pos2.Y = 3, pos2.Z = 3로 할당돼요.
local pos3 = pos1 + pos2 --pos3.X = 4, pos3.Y = 5, pos3.Z = 6로 할당돼요.
local cube = Workspace.Cube
local cubeTransform = cube.Transform
cubeTransform.Location = Vector.new(400, 0, 100)
cube.Transform = cubeTransform --오브젝트의 위치를 설정해요.
local pos4 = Vector.new() --pos4.X = 0, pos4.Y = 0, pos4.Z = 0로 할당돼요.
pos4.X = 10 --pos4.X = 10, pos4.Y = 0, pos4.Z = 0로 할당돼요.
pos4.Normalize() --pos4.X = 1, pos4.Y = 0, pos4.Z = 0로 할당돼요.
생성자
Vector new(number X, number Y, number Z)
Vector를 X, Y, Z 좌표값을 이용해서 생성해줘요. (생성할 X좌표 값, 생성할 Y좌표 값, 생성할 Z좌표 값)
Vector new(number Value)
Vector를 Value값을 이용해서 생성해줘요. (생성할 Value 값)
Vector new()
Vector의 X, Y, Z 좌표를 0으로해서 생성해줘요.
-- 샘플 --
local pos1 = Vector.new(200, -100, 900)
local pos2 = Vector.new(200) --X = 200, Y = 200, Z = 200으로 할당돼요.
local pos3 = Vector.new() --전부 0으로 할당돼요.
함수
void Normalize()
단위를 1로 정규화 시켜주는 함수에요.
-- 샘플 --
local pos = Vector.new(200, -100, 900)
print(pos)
pos:Normalize()
print(pos)
number CosineAngle2D(Vector Other)
두 벡터의 XY 평면의 사잇각의 cos 값을 리턴해줘요. (사잇각을 구할 벡터)
-- 샘플 --
local cube = Workspace.Cube
local characterPos = character.Transform.Location
local targetPos = cube.Transform.Location
local angle = characterPos:CosineAngle2D(targetPos)
print(angle)
string ToString(Vector Other)
"R:값 , G:값 , B:값, A:값" 형태로 string 을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
print("Vector : " .. vector:ToString())
number Dot(Vector Other)
other vector 와의 내적값을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Dot(otherVector)
print("Vector:Dot : ", result)
vector Cross(Vector Other)
othervector 와의 외적값을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Cross(otherVector)
print("Vector:Cross : ", result)
number Distance(Vector Other)
othervector 와의 거리값을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Distance(otherVector)
print("Vector:Distance : ", result)
number SqrDistance(Vector Other)
othervector 와의 거리 제곱값을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:SqrDistance(otherVector)
print("Vector:SqrDistance : ", result)
number Angle(Vector Other)
othervector 와의 사이각을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Angle(otherVector)
print("Vector:Angle : ", result)
vector Reflect(Vector Normal)
normal 에 부딪히는 반사각을 리턴해요.
-- 샘플 --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Reflect(otherVector)
print("Vector:Reflect : ", result)
vector Clone()
같은 벡터를 새로 생성해서 리턴해요.
-- 샘플 --
local Vector1 = Vector.new(100, 100, 100)
local NewVector = Vector1:Clone(Vector1)
print("Clone Vector : ", NewVector)
void SizeLimit(number max)
벡터의 크기를 max로 제한해요. ((X^2 + Y^2 + Z^2)^(1 / 2)) = Max
-- 샘플 --
local Vector1 = Vector.new(100, 100, 100)
Vector1:SizeLimit(50)
print("Size Limit : ", Vector1)
vector RotateAxisX(number angle)
X축을 고정으로 해서 벡터 회전한 다음 리턴해요.
-- 샘플 --
local RotateX = Vector1:RotateAxisX(10)
print("RotateAxisX : ", RotateX)
vector RotateAxisY(number angle)
Y축을 고정으로 해서 벡터 회전한 다음 리턴해요.
-- 샘플 --
local RotateY = Vector1:RotateAxisY(10)
print("RotateAxisY : ", RotateY)
vector RotateAxisZ(number angle)
Z축을 고정으로 해서 벡터 회전한 다음 리턴해요.
-- 샘플 --
local RotateZ = Vector1:RotateAxisZ(10)
print("RotateAxisZ : ", RotateZ)
number SignedAngle2D(Vector othervector)
othervector 와의 사이각을 리턴해요. (음수 포함)
-- 샘플 --
local Vector2 = Vector.new(100, 0, 100)
local Vector3 = Vector.new(0, 100, 100)
local SignedAngle = Vector2:SignedAngle2D(Vector3)
print("SignedAngle2D : ", SignedAngle)
vector zero()
zero 벡터를 리턴해요. (0,0,0)
-- 샘플 --
local Zero = Vector.zero()
print("Vector Zero : ", Zero)
vector one()
one 벡터를 리턴해요. (1,1,1)
-- 샘플 --
local One = Vector.one()
print("Vector One : ", One)
vector forward()
forward 벡터를 리턴해요. (1,0,0)
-- 샘플 --
local Forward = Vector.forward()
print("Vector Forward : ", Forward)
vector right()
right 벡터를 리턴해요. (0,1,0)
-- 샘플 --
local Right = Vector.right()
print("Vector Right : ", Right)
vector up()
up 벡터를 리턴해요. (0,0,1)
-- 샘플 --
local Up = Vector.up()
print("Vector Up : ", Up)
Last updated
Was this helpful?