혼자 리서치하다가 재밌는 두 가지가 있어 쓴다. 우선 두 가지 질의 응답을 한번 고민해보자.모든 경우의 GetComponent의 횟수는 가능한 적게 쓰는 것이 좋다고 알려져있다. 그 이유 중에서 GC를 고려한 것이 있을까?마이크로소프트 이야기로는 구조체의 크기는 16 바이트 이하인것이 오버헤드를 덜 발생시킨다고 했다. 왜 16바이트인지에 대해 생각해보자.GetComponent에 대한 답GetComponent 계열의 함수가 각각 발생시킬 수 있는 오버헤드는 많이 다르다. GC와 연관이 있을수도 없을 수도 있지만, 적게 쓰는 큰 의의는 검색 비용때문이다. GC.Alloc을 유발하는 경우를 소개한다.GetComponents() 는 복수형이다. 가장 명확한 예제로, 이 메서드는 컴포넌트들을 담을 새로운 배열을 ..
면접 준비 과정 중 몇몇 SDK를 동시에 실습하는 과정에서 안드로이드 실제 환경 요구로 에뮬레이터를 이용한 실습을 진행했었다. 예전의 빌드 경험에 의거하면 그냥 딸깍에 해결됐는데 예전같진 않은 것 같다.처음 맞이한 문제는 java.exe나 clang.exe 같이 빌드에 기본적으로 준비되어야 할 것들이 실행되지도 않았는데 에디터는 빌드 진행 중을 띄워놓고 있었다는 것이다. 그래서 그런가보다 하고 자고 일어났는데 하나도 진행이 안됐다. 그래서 뭔가 잘못되었다고 판단하고 원인을 어떻게 추론 할 수 있을까 생각해보다가 두 가지를 행했다.첫 째는 모바일 대응이라고 자신있게 말하는 유니티의 공식 프로젝트를 빌드해보고 두 번째는 그냥 빈 프로젝트를 빌드하는 것이었다. 그렇게 해보니까 첫 번째는 진행이 됐는데 두번째는..
이 글에서 우리는 간단한 Firebase 익명 로그인 시스템과 그리고 앱의 직접적인 업데이트 없이 서버의 조정으로 인해 바뀐 값을 클라이언트에서 전달 받는 시스템을 구현해본다. 글을 끝까지 완수하겠다면 Unity 에디터를 다룰 수 있다면 충분하다.Firebase 기반 및 익명 로그인 구현Unity 프로젝트를 하나 생성한다.Unity 프로젝트 생성은 아무거나 해도 상관없다.구글에 로그인해서 Firebase 페이지에 들어가서 새로운 프로젝트를 만들자.새 Firebase 프로젝트 만들기 버튼 내지 비슷한 계열의 버튼을 눌러 빈 프로젝트를 만들어보자. 그리고 사진처럼 프로젝트 콘솔에 입장하면 [앱 추가]를 눌러 유니티를 선택한다.그럼 해야할게 여러가지 생긴다. 사진과 같은 프로세스를 거친다. 각 과정에서 참고 ..
뭔가 한창 달리고 있다가,쌩 프로그래밍 출발점 - [뭔가 있는 듯 없는 듯 비어있음] - 유니티 게임 개발자 이 상황인 것 같아서 글 하나에 정리하려고 한다. C#이라는 걸 제외하면 OOP나 3D 수학은 다른 엔진에 가서도 충분히 활용처가 있을 것이라고 생각한다.. 즉각즉각 답 할 수 있게 제대로 기억하기3D 수학Vector의 외적/내적 정의내적 : 한 벡터를 다른 벡터에 투영한 크기를 말한다. 핵심은 두 벡터가 얼마나 같은 방향을 보느냐?결과는 -1 ~ 1 사이에서 나올 수 있는데, 1에 가까우면 같은 방향, 0은 완전한 수직, -1로 갈수록 완전히 다른 방향이다. abs(A) * abs(B) * cos(theta)벡터를 가질 수 있는 두 객체 사이에서의 방향 관계를 정의 할 때 사용 할 수 있다.외적..