유니티
Firebase - Unity SDK 이전 버전 다운로드
파이어베이스 - 유니티 SDK 버전 호환 문제로 이전 버전 다운로드가 필요하다면? https://dl.google.com/firebase/sdk/unity/firebase_unity_sdk_${version}.zip 위에 있는 ${version} 에 버전 번호를 적어준다. 6.0.0 버전을 다운로드하고 싶다면 https://dl.google.com/firebase/sdk/unity/firebase_unity_sdk_6.0.0.zip 최신 버전(6.5.2)을 다운로드하고 싶다면 https://dl.google.com/firebase/sdk/unity/firebase_unity_sdk_6.5.2.zip
Cocoapods 설치 후 사용법
(cocoapods 설치 후 - 설치과정은 검색을 통해 찾을 것) 유니티 ios 버전으로 빌드 (Xcode) 파일 생성 터미널 열고 입력 $cd 터미널 창에 Xcode 폴더 끌어다 넣으면 자동 경로 입력 이후, 엔터를 눌러 해당 Xcode 폴더 경로로 이동 Xcode 폴더 안에 pod 파일이 있고, 안에 내용이 있다면 터미널에 pod install 을 설치하고, pod 파일이 없다면 init pod 파일을 입력해 pod 파일 생성하고, 필요한 라이브러리를 채워넣는다. (필요한 라이브러리는 검색을 통해 채워넣을 것) 이후 xCode.proj 파일이 아닌 space 파일을 이용해 Xcode를 실행한다. (Cocoapods 전용 파일) // (구글 애드몹 사용시) Xcode 폴더 안 Info.plist 파일을..
터치 감도 조절
[문제]- 스크롤 안에 프리팹 버튼을 생성하면 잘 안눌림- 특정 디바이스에서 버튼 잘 안눌림 [해결 방법]EventSystem 의 터치감도를 조절한다. private const float inchToCm = 2.54f; [SerializeField]private EventSystem eventSystem = null; [SerializeField]private float dragThresholdCM = 0.5f;//For drag Threshold private void SetDragThreshold(){ if (eventSystem != null) { eventSystem.pixelDragThreshold = (int)(dragThresholdCM * Screen.dpi / inchToCm); }} v..
몽고DB 기본 명령어
몽고DB를 실행할 때는 설치된 경로로 이동해 실행한다. (C:\Program Files\MongoDB\Server\버전\bin)C:\data\db 폴더가 없으면 실행되지 않으므로 반드시 폴더를 만든다.몽고DB를 사용하려면 먼저 mongod를 통해 서버를 실행한다.이후, 같은 폴더에서 콘솔 하나를 더 열고 mongo를 입력한다. 관리자계정 추가 > use admin > db.createUser({user:'이름', pwd:'비번', roles:['root']}) 관리자계정 추가 후 mongod 콘솔 종료후, mongod --auth 명령어로 접속mongo 콘솔도 마찬가지로 mongo admin -u 이름 -p 비밀번호 로 접속 데이터베이스 생성 > use [데이터베이스 이름] 데이터베이스 목록 조회 > s..
VSyncCount
Quality에서 VSyncCount를 Don't Sync로 변경하면 스크립트상에서 TargetFrame을 사용해 프레임을 고정시킬 수 있다. 라고 하는데 난 적용이 안된다. 프로파일러상에서 WaitForFPS가 80~90% 이상을 차지하기 때문에 게임에 영향을 줄 수 있는데 이 세가지가 연관이 되어 있다. //해결방법스크립트상에서 VSyncCount = 0 으로 설정하면 WaitForFPS가 사라진다.VSyncCount = 0 으로 설정하고 나서 Input.GetMouseButtonDown 이나 KeyDown 등이 제대로 작동하지 않는 문제가 생기는데이럴 때, 버튼을 사용하면 해결하면 된다. (단, 버튼을 사용하는 경우 ButtonUp때 로직이 발동되므로 참고)또, 버튼을 사용하면 Eventsystem..
캐릭터 폴리곤 줄이기
준비물 : 메쉬 온라인 툴, 폴리곤 개수를 줄일 모델 (2개) 메쉬 온라인 사이트에서 툴을 다운로드 (http://www.mesh-online.net/download.html) 다운로드한 파일을 압축 풀고, 유니티 프로젝트 Asset폴더 안에 넣는다. 폴리곤 수를 줄일 모델을 임포트시키고, 모델을 선택한 상태에서 유니티 상단바에 위치한 Window - Mantis LOD Editor - Component - Editor - Mantis LOD Editor Online 을 선택한다. 오른쪽에 추가된 스크립트에서 Upload Mesh Data를 선택한다. (선택된 모델에 대한 메쉬 데이터를 업로드)업로드가 완료되면 Triangles에 메쉬개수가 표시된다. (해당 용 모델의 현재 폴리곤 수 : 1008개) Q..
미사일이 플레이어 정면 방향 바라보게 만들기
//플레이어 정면 방향Vector direction = Player.transform.localRotation * Vector3.forward; //미사일이 플레이어의 정면 방향을 바라봄Missile.transform.localRotation = Quaternion.LookRotation(direction);
블렌더 1일
영역이 3개로 나뉘어져 있고, 독립적인 기능을 수행 File - Load Factory Setting - OK 누르면 처음 세팅으로 되돌아감 레이아웃으로 현재 영역 세팅을 저장시킬 수 있다. File - User Preferences - System - DPI 수정하면 폰트 사이즈 조정 가능하다. 카메라 회전법) 마우스 가운데 버튼, Shift + 마우스 가운데 버튼 배치를 세밀하게 작업할 때 Perspective Camera에서 Ortho Camera로 변경 (넘버 5) View - Toggle QuadView로 하면 동시에 4개의 여러뷰를 볼 수 있다. 영역 안에 작은 영역을 리전이라고 부른다. +버튼 왼쪽, 하단 모두 리전임 오른쪽 리전 하단에 디스플레이 - Lock을 풀어주면 4개의 쿼드뷰에서 각..
모바일 렌더링 세팅
플레이어세팅에서 PC는 Linear / 모바일은 Gamma 퀄리티세팅에서모바일만 Fantastic -> Fastest로 메인카메라를 모바일은 Foward로가장 오래된 렌더링 방식.. 라이팅을 많이 지원하지 않는다.PC는 Deffered 렌더링 이 세팅에서 그림자를 찍는법, 캐릭터와 배경간의 동적 쉐도우와 정적 쉐도우 1. 매터리얼을 모바일/버텍스릿 (디렉셔널 라이트 온리)로 설정한 매터리얼로 배경에 적용 2. 디렉셔널 라이트를 리얼타임으로 사용X, 베이크로 변경 (그러면 오브젝트들이 어두워지는데 오브젝트들을 Static 설정해주면 다시 라이팅이 적용된다) 3. 라이트 세팅에서 Baked Gi를 통해 씬을 굽게 된다. (Baked Resolution을 낮추거나 CPU Usage를 낮추면 연산이 빨라진다.)..
CPU와 GPU, 렌더링 초간단 학습
CPU (Central Processing Unit, 중앙 처리 장치) : 화면에 그려야할 대상과 대상을 그릴 방법 결정 GPU (Graphics Processing Unit, 그래픽 처리 장치) : CPU의 지시를 받아 화면을 그림 [렌더링 파이프라인] . 씬 안의 모든 오브젝트를 검사한다. . 카메라의 뷰 프러스텀에 위치해야 렌더링되며, 렌더링 되지 않는 오브젝트는 컬(Cull) 처리 된다고 한다. . CPU가 렌더링 되는 모든 오브젝트에 대한 정보를 수집하면 드로우 콜(Draw Call)로 정렬한다. . 드로우콜에는 단일 메쉬와 이 메쉬의 렌더링 방법에 대한 정보가 담겨있다. ex) 어떤 텍스쳐를 사용하는 지에 대한 정보도 담겨 있다. . 서로 다른 오브젝트를 동일한 드로우 콜로 결합하는 것을 배칭..
가비지 컬렉션이란?
가비지 컬렉터에서 검사해야하는 오브젝트나 참조값이 많은 경우, 이를 모두 검사하는 과정이 느려진다. 이로 인해 게임이 뚝뚝 끊기거나 실행이 느려지는데 가비지 컬렉터과 연관된 문제를 살펴보면, (1) 불필요한 시간에 가비지 컬렉터 실행 - CPU가 중요한 작업을 처리하고 있는 경우, 가비지 컬렉터에 의해 발생한 약간의 오버헤드는 프레임 속도와 성능을 떨어뜨린다. (2) 힙 파편화 - 힙 상에 메모리가 할당되면, 데이터 크기에 따라 메모리 공간에 크기가 서로 다른 메모리 블록으로 메모리를 차지하게 되는데 이러한 메모리 블록이 힙을 반환되면, 힙은 할당된 메모리 블록으로 구분되는 여러 개의 작은 블록으로 분할될 수 있다. (즉, 사용 가능한 전체 메모리가 많아도 가비지 컬렉터를 실행하거나 힙을 확장하지 않으면..