unity(2)
-
벡터의 정의와 연산(with Unity)
벡터의 정의 벡터(vector)는 수학개념으로 크기와 방향을 갖는 물리량을 의미한다. 이 글에서는 3차원 벡터를 기준으로 설명한다. 벡터의 형태 유니티에서 주로 쓰이는 Vector3(3차원 벡터)는 3개의 원소를 가진다. $$ \vec {v}=(v_x, v_y, v_z) $$ //(0,0,0)의 값을 가진 벡터를 만들어 v에 저장한다. Vector3 v = new Vector3(0,0,0); 벡터의 덧셈 $$ \vec {a}+\vec {b}=(a_x+b_x, a_y+b_y, a_z+b_z) $$ //덧셈기호를 통해 벡터를 더할 수 있다. Vector3 s = new Vector3(1,2,3) + new Vector3(5,3,7) Debug.Log(s) //(6,5,10) 벡터의 덧셈은 모든 원소를 각각 ..
2023.07.16 -
[UNITY] 유니티의 Null 확인 - Fake Null
유니티의 C++ 네이티브 객체 유니티는 기본적으로 C#을 통해 스크립트를 작성한다. 하지만 유니티의 C# 객체들은 내부적으로 생성된 C++ niative 객체를 Wrapping 하는 방식으로 구현되어 있다. 여기까지는 문제가 없고 개발자가 신경 쓸 일도 없지만, 문제는 객체가 파괴될 때 발생한다. Fake Null Destroy함수가 호출되어 파괴된 객체를 참조하면 null 값이 반환된다. 하지만 is null을 통해 확인하면 값이 달라지는 걸 알 수 있다. is null연산자를 통해 비교하면 == 연산자와 다른 결과를 출력하는 것을 알 수 있다. 이런 현상을 Fake Null이라고 한다. 이렇게 출력되는 이유는 Destroy 함수가 C# 객체를 파괴하지 않고 C++ 객체만 파괴하기 때문이다. 따라서 C..
2023.07.15