본문 바로가기

메모장

(49)
NGUI & UGUI NGUI (Next-Gen UI) UGUI가 나오기 이전부터 많은 개발사가 사용하던 플러그인 레퍼런스가 많다 다양한 크기의 화면에 최적화시키기 쉽다 (비교적) 정적인 화면에 최적화가 잘되어 있다. 동적 할당을 할 때 Sprite를 다시 그리기 때문에 비효율적 UGUI (Unity GUI) Unity Engine (4.6 이후부터) 내에서 제공하는 UI System 추가 구매 없이 바로 사용 가능 직관적인 UI 구성요소 간의 Depth 조절 Canvas 단위로 Draw Call이 관리됨 Sprite Atlas 관리 (폴더 단위로도 가능) Particle Rendering 문제가 있음 Tweening을 기본으로 지원하지 않음 소스 코드가 공개되어 있음 (https://bitbucket.org/Unity-Te..
[Unity Assetbundle] 에셋 번들이란? 1. 에셋 번들이란? 에셋 번들은 말 그대로 에셋을 하나로 묶어 놓은 것입니다. 유니티의 에셋들을 묶어 하나로 관리하는 것이죠. 에셋은 프리펩, 사운드, 텍스트, 이미지, 폴더 등 유니티 내부에서 사용하는 모든 자원들을 칭합니다. 2. 에셋 번들의 흐름 개발자는 에셋들을 묶어 에셋 번들로 만든 뒤 FTP클라이언트를 사용하여 외부에 있는 스토리지에 에셋 번들을 로드하고 저장합니다. 런타임시 유니티 씬의 스크립트를 통해 외부 스토리지에 로드한 에셋번들을 다운로드 합니다. 그리고 서버로부터 로드한 에셋번들에서, 각각의 에셋을 로드하여 사용합니다. 3. 에셋 번들을 사용하는 이유 에셋 번들을 사용하지 않아도 유니티 프로그램은 정상적으로 작동 합니다. 그렇다면 왜 에셋 번들을 사용하는 걸까요? 1. 업데이트가 용..
A* Algorithm (에이스타 알고리즘) 개요 길 찾기 알고리즘으로 유명한 A* 알고리즘이다. 게임에서 많이 사용된다. 기본적으로 다익스트라 알고리즘의 변형이다. A*알고리즘은 휴리스틱 이론을 사용한다. 휴리스틱 이론은 정확한 값이 아닌 어림짐작을 통해 값을 추정하는 방법이다. A*알고리즘은 목표까지의 거리를 정확하게 측정하지 않고 어림짐작하여 연산 시간을 줄이는 것이 핵심이다. A*알고리즘을 통해 최단 거리를 찾기 위해 목표까지의 경로를 분할해야 하며, 이때 분할된 구역들이 노드가 된다. 초록색 노드가 시작노드, 빨간색 노드가 목표노드이며, 파란색은 지나갈 수 없는 장애물이다. 시작노드에 인접한 노드들 부터 확인하며, 비용이 작은 노드부터 탐색하게 되는데, 비용은 다음과 같이 정해진다. 비용 = (시작노드-현재노드 사이의 가중치) + (현재노..
[Unity] UGUI Multiple Sprite 만들기 + 이미지 자동으로 자르기 UGUI를 쓰다보면 Sprite 하나에 여러개의 이미지가 붙어 있는 것을 보게됩니다. 요것을 만들어 보겠습니다. 1. 이미지 파일 Multiple Sprte로 만들기 우선 Multiple Sprite 로 만들 이미지를 프로젝트에 추가시켜 줍니다. 한개의 이미지에 1부터 4까지의 숫자가 들어가 있는 이미지를 사용해 보겠습니다. 클릭해서 Inspector창을 열어줍니다. 제일 위에 있는 Texture Type을 Default에서 Sprite (2D and UI) 로 바꿔줍시다. 그 다음 Sprite Mode를 Multiple로 바꿔주고 Apply 해줍니다. 이제 Sprite Editor로 Sprite를 여려개로 잘라주시기만 하면 됩니다. 1,2,3,4 를 각각 드레그 해줘서 4개의 이미지로 만들어 줬습니다...
Git LFS (Large File Storage) - 100MB 이상의 파일을 깃허브에 올리기 git에는 LFS (Large File Storage)라는 기능이 존재합니다. LFS란? git에서 크기가 큰 파일을 다루기 위해서 github에서 만든 오픈 소스 입니다. 용량이 큰 파일을 외부 스토리지에 올리고 git에는 LFS (Large File Storage)라는 기능이 존재합니다. LFS란? git에서 크기가 큰 파일을 다루기 위해서 github에서 만든 오픈 소스 입니다. 용량이 큰 파일을 외부 스토리지에 올리고 리포지토리(Repository)에서는 포인터로 관리합니다. github link : https://github.com/git-lfs/git-lfs/releases/tag/v2.7.2 git-lfs/git-lfs Git extension for versioning large files..
[Unity] GraphicRaycaster (UGUI 레이캐스팅 하기) 유니티의 UGUI는 Canvas의 Render Mode가 'Screen Space - Overlay' 일 경우 카메라를 사용하지 않고 렌더링 과정에서 그려진 오브젝트들 위에 덧그려진다. 이때 UI에 Raycast를 사용하려면 어떻게 해야 할 까? UGUI 오브젝트를 생성하면 자동으로 Canvas가 생성된다. 이때 Canvas를 살펴보면 Graphic Raycaster가 달려있는것을 볼 수 있다. 유니티 메뉴얼에 따르면 Graphic Raycaster는 캔버스 안을 검색하는 Raycaster이며, EventSystem이 이벤트를 검출하는 수단으로 사용된다는 것을 알 수 있다. 하지만 메뉴얼에는 Graphic Raycaster를 어떻게 써야하는지 스크립트 예시가 적혀있지 않다. 그래서 예시를 만들어 두려고 ..
C++/STL List를 순회하는 방법 std::list std::list intList; 기존 방법 (iterator 사용) for(std::list::iterator itr = intList.begin(); itr != intList.end(); itr++){ printf("%d",**itr); } 향상된 for문을 이용한 탐색 for (int *ptr : intList){ printf("%d",*ptr); } for each문을 이용한 탐색 for each(int* i in intList){ printf("%d",*i); } iterator를 쓰지 않는 편이 깔끔하다!
[Unity] Google Play 로그인 에러 DllNotFoundException 종합본 : https://dobby-the-house-elf.tistory.com/202 [Unity] GooglePlayGames 로그인 에러 해결 logcat 이용하여 디버깅 하는법 : https://dobby-the-house-elf.tistory.com/192 [Unity] 유니티 모바일 디버깅 방법 (adb logcat 사용법) 안드로이드 APK 로 빌드된 유니티 프로젝트를 logcat을 이용해서 디버깅.. dobby-the-house-elf.tistory.com Google Play Console 로그인이 다음과 같은 에러 문구가 뜨며 오작동을 일으킬때. DllNotFoundException: Unable to load DLL 'gpg': The specified module could not..