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?