pudding81 2024. 3. 4. 17:47

 

Transform.position (1,1)   = (1,1) 지점으로 이동

Transform.Translate  (1,1) = 현재위치에서 (1,1) 만큼 이동

 

벡터의 스칼라곱 : 벡터의 길이가 늘어난다

 

 

 

벡터의 내적 

Vector3 a = new Vector3(0,1,0); 위쪽

Vector3 b = new Vector3(1,0,0); 아래쪽 

 

Vector3.Dot(a,b); 수직인 벡터끼리 내적하면 결과는 0

 

 

두 벡터의 방향이 일치하는 정도의 크기를 구하는 것(두 벡터의 유사도).

정확히 말하면, 한 벡터에 대한 다른 벡터의 포함 정도.

-1~ 1 사이의 값이 나옴 

1이 나오면 두 벡터가 같다는 의미

 

시야각에 들어왔는지 또는 전방, 후방에 있는지 체크할 때 좋다

내적의 값이 0보다 클때는 전방

0보다 작을 때는 후방 

두 벡터가 이루는 각이 직각이라면 내적 값은 0.

왼쪽이던 오른쪽이던 같은 각도라면, 같은 값을 반환해낸다.

 

 

벡터의 외적 

 

Vector3 a = new Vector3(0,1,0); 앞쪽

Vector3 b = new Vector3(1,0,0); 오른쪽 

 

Vector3.Cross(a,b);  (0,1,0)  위쪽 

 

외적은 좌측인지 우측인지 판별할때 쓰임.

 

- 두 벡터가 평행일 때 외적의 값은 0

 

Z축을 기준으로 오른쪽으로 가면 Y가 상승

//두 벡터의 방향을 외적
Vector3 cross = Vector3.Cross(a.normalized,b.normalized); 

if(cross.y>0) //y축이 양수이면 
{
Debug.Log("오른쪽");
}

else if(cross.y<0) //y축이 음수이면 
{
Debug.Log("왼쪽");
}

 

 

벡터의 크기 길이 

Vector3.magnitude;

 

벡터의  두지점 사이의 거리

float distance = Vector3.Distance(a,b);

 

벡터의  두지점 사이의 방향

Vector3 dir =  (a-b).normalized;

 

 

쿼터니언 

 

Quaternion.Euler( Vector3);

(0,60,0) 회전하기

Quaternion rotation = Quaternion.Euler(new Vector3(0,60,0));

Vector3 eulerRotation = rotation.eulerAngles;

 

 

예제 

Quaternion a= Quaternion.Euler(30,0,0); 회전한 상태에서 

 

Quaternion b= Quaternion.Euler(0,60,0); 더 회전하기 

 

Quaternion rotation = a*b; 곱하기