코스모스 공작소

유니티 벡터 관련 정리 본문

프로그래밍/Unity

유니티 벡터 관련 정리

cosmos_studio_ 2017. 4. 11. 21:05
반응형

Vector3는 x,y,z 좌표계에 위치한 어떤 좌표를 표시해주는 방식이다.

 


Dot - 두 벡터가 수직인지 계산해주는 함수

 

Vector3.Dot(VectorA, VectorB);

-0일경우 수직, 양의 값은 좁아짐, 음의 값은 수직 이상으로 벌어짐을 의미

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Transform other;
    void Update() {
        if (other) {
            Vector3 forward = transform.TransformDirection(Vector3.forward);
            Vector3 toOther = other.position - transform.position;
            if (Vector3.Dot(forward, toOther) < 0)
                print("The other transform is behind me!");
            
        }
    }
}
cs

ex) 비행기 항력

 


CrossProduct - Dot과 같은 스칼라 값이 아닌 두벡터의 수직인 벡터를 생성해준다.

- A^B=C

Vector3.Cross(VectorA, VectorB);

1
2
3
4
5
6
7
8
9
10
using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    Vector3 GetNormal(Vector3 a, Vector3 b, Vector3 c) {
        Vector3 side1 = b - a;
        Vector3 side2 = c - a;
        return Vector3.Cross(side1, side2).normalized;
    }
}
cs

ex) 탱크에서 쏘는 회전포에 토크를 더할 축을 찾을 때 이용

반응형
Comments