유니티 Vector 정규화

💡 Quotation 벡터(Vector)는 물리학 및 공학에서 벡터는 위치, 속도, 힘 등과 같이 크기와 방향성을 갖는 물리량을 나타내는데 사용하는 기하학적 대상이다. 유니티에서 키보드의 입력을 받아 플레이어의 특정 방향으로 움직일 때 Normalize를 거친 벡터를 사용하라고 하는데 왜 그럴까? 궁금해서 글을 쓰게 되었습니다. 😄 Nomalize (정규화) 일단 제가 알고 있는 정규화는 0 ~ 1 범위로 표현하는 것을 정규화라고 알고 있습니다. 벡터의 정규화는 어떤 것을 의미할까요? Vector3.Normalize()의 코드를 먼저 분석해 보겠습니다. 💡 Git: Unity-Technologies에 Vector3의 코드를 볼 수 있습니다! ...

2025년 01월 18일 · 2 min · 358 words · JongBin

유니티 코루틴 및 yield 키워드 관련 공부

유니티에서 코루틴을 사용할 때 함수 이름의 문자열 또는 IEnumerator 를 반환하는 함수를 사용해서 호출할텐데, 이 때 사용되는 yield 가 무엇인지 더 자세히 알아보기 위해 공부 및 글을 남깁니다. 😄 코루틴? 💡 Quotation 반복기에서 yield 문을 사용하여 다음 값을 제공하거나 반복 종료를 알립니다. - MSDN 유니티에서 코루틴을 스레드 대신 사용한다고 하여 내부적으로 thread-safe 를 준수하는 스레드? 인 줄 알았으나, 단순히 싱글 스레드에서 반복문을 돌려 처리하는 것이었습니다. 그럼 어떻게 싱글 스레드에서 스레드를 사용하는 것 처럼 쓰일 수 있을까요? 아니 그 전에 스레드를 왜 사용했을까요? ...

2025년 01월 10일 · 3 min · 438 words · JongBin

유니티 WebGL 프로젝트에서 Websocket 사용하기

유니티 세계에서 통신을 하기 위한 방법으로 소캣, HttpRequest 등 다양한 방법들이 있습니다. 그 중 저는 실시간 양방향 통신이 필요해서 소캣을 이용하여 NetworkManager를 만들었습니다. 😭 일반 소켓을 웹에 사용하면 웹 소캣이겠지.. 라고 생각한 무지했던 과거의 나.. 하지만 일반 소캣과 웹 소캣은 프로토콜부터 달랐으며 서로 통신도 안된다는 것을 깨닫고 웹 소캣 통신을 하기위해 여러가지 시도를 하게 됩니다. 그 중 성공했던 방법을 공유해 드리겠습니다. 👍 System.Net.WebSockets (실패) 첫 번째로 시도한건 C# 에서 바로 사용할 수 있는 System.Net.WebSockets 이었습니다. 라이브러리를 받을 필요 없이 바로 추가해서 사용할 수 있기 때문이었습니다. ...

2025년 01월 01일 · 2 min · 283 words · JongBin

AVX 명령어 세트 및 개발 방법

💡 Quotation 고급 벡터 확장(Advanced Vector Extensions,약어:AVX)은 2008년 4월 춘계 인텔 개발자 포럼에서 발표된 x86 명령어 집합의 확장으로 SIMD명령어 집합중의 하나이다. Wikipedia 💡 TIps 단일 데이터 복수 데이터 단일 명령어 SISD SIMD 복수 명령어 MISD MIMD 해당 글에서 설명할 AVX 명령어 셋은 SIMD에 속합니다! CPU-Z 에서 본인이 사용하는 프로세서가 사용할 수 있는 명령어 집합을 볼 수 있는데, 그 중 AVX는 큰 데이터 덩어리를 처리할 수 있는 기술로 적은 연산으로 빠르게 처리가 가능하게 합니다. ...

2024년 04월 17일 · 2 min · 384 words · JongBin

Rust 함수 생성 및 사용

생김새 1 2 3 fn main() { } 💡 Tips 프로그램의 시작은 fn main() 함수에서 시작한다는 것을 이전 포스팅에서 알 수 있었습니다. C/C++ 및 Java에서 흔히 함수명 앞에 반환하는 데이터 타입, 뒤에는 함수에서 사용할 Parameter를 정의했는데 Rsut 에서는 반환 데이터 타입 대신 fn 이라는 키워드가 옵니다. 그렇다면 함수가 반환할 때는 어떻게 해야할까요? 새로운 함수를 만들어 보겠습니다. 😊 함수 생성 및 사용 1 2 3 4 5 6 7 8 9 10 fn main() { println!("{} + {} = {}", 2, 3, add(2, 3)); } fn add(a:i32, b:i32) -> i32 { return a + b; } // 실행결과 // 2 + 3 = 5 fn add(a:i32, b:i32) -> i32 에서 볼 수 있듯 fn 키워드를 이용하여 함수임을 선언한 후 함수 이름과 사용할 Parameter를 정의했고, 처음 보는 기호 ->를 통해 반환형이 i32라고 정의하는 것을 볼 수 있습니다! ...

2024년 04월 13일 · 1 min · 195 words · JongBin