💡Custom Editor Custom Editor란 Unity에서 Editor를 커스터마이징 한다는 뜻이다 커스터마이징을 통해 개발자들은 유니티 에디터 자체에 특정 기능을 추가할 수 있다 예를 들면, 인스펙터창에 특정 버튼을 누르면 특정 에셋들이 Load 된다거나, 자동으로 맵을 생성해준다거나 등등 잘 활용만 한다면 개발하는데 엄청난 편의성을 느낄 수 있다 💡유니티 에디터 커스터마이징을 하기 위해서는 몇가지 개념들을 알아두어야 한다 먼저, 유니티 에디터 코드가 동작하는 레벨에 대해 알 필요가 있다 우리가 흔히 사용하는 C# 스크립트들은 모든 레벨에서 사용이 가능하다 즉, 빌드 된 환경에서도 동작하고, 유니티 에디터 환경에서도 잘 동작한다는 뜻이다 하지만, 에디터 코드는 에디터 환경에서만 동작하고 빌드 ..
💡namespace namespace는 클래스들의 묶음이다 namespace를 쓰는 이유는 프로젝트의 규모가 커질수록 각종 이름들의 충돌 발생 가능성을 막아주기 위함이다 namespace 네임스페이스-이름 { class A{} class B{} ... } 💡namespace 사용방법 네임스페이스를 사용하는 방법은 2가지 있다 전체 네임스페이스를 다 적는 방식 using 지시문을 사용하는 방식 UnityEngine.Debug.Log("네임스페이스 호출"); 위와 같이 UnityEngine라는 namespace을 선언해준다음 사용하거나 using UnityEngine; public class Namespaces : MonoBehaviour { void Start() { Debug.Log("네임스페이스 호출"..
ScriptableObject란 ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. ScriptableObject를 쓰는 이유는 다음과 같습니다. 기존 클래스는 내부 변수 하나 당 4Byte가 듭니다(변수에 따라 다름) . 총 4개의 변수가 사용된다 가정할 때, 4X4 = 16Byte가 메모리에 사용되게 됩니다. 만약 좀비라는 몬스터 프리팹이 1000마리를 일반클래스의 변수로 구현했다면 16 X 1000 = 16000Byte(16KB)가 메모리에 사용되게 됩니다. 16KB는 큰 값은 아니지만, 추후 변수가 추가됨에 따라 점점 메모리 소모량이 많아질 것입니다. 하지만, 스크립터블 오브젝트를 사용하면 좀비를 몇 백마리 사용하든 메모리..
ViewportToWorldPoint & WorldToViewportPoint 활용법 오브젝트가 화면(보여지고 있는 화면)에서 벗어나게 하지 않게 하고 싶을 때 사용하면 된다 이렇게 Cube오브젝트는 화면밖으로 나가지 않는다전 시간에도 말했다시피 ViewPort는 비율이므로 0~1사이 값으로 컨트롤한다Cube의 World Transform Position을 ViewPort 좌표계의 값으로 변환한다 그러면 ViewPort좌표계에 0~1비율 사이에 존재하게 되는데 이때 x좌표가 0 or 1을 벗어나려고 하면 최대치를 0과 1로 하여 화면에 고정시킨다 그다음으로 ViewPort좌표계의 위치를 다시 3차원의 좌표계 World 좌표계로 변환해준다 그거를 transform에 대입한다 ScreenToWorldPoin..
💡 첫 번째, Asset Store에서 Oculus Integration을 Import 💡 두 번째, Project Setting 설정 동그라미 1번에서 Texture Compression 방식을 ASTC로 선택해 줍니다. ASTC는 텍스처 압축 방식 중 하나입니다. 형식 설명 2k RGBA 용량 (기본설정) 지원 OS RGBA 무압축 16 MB All ETC1 구형 안드로이드 압축형식 2 MB 안드로이드 ETC2 유니티의 기본 안드로이드 압축형식. OpenGL 3.0 이상 4 MB 안드로이드 PVRTC 유니티의 기본 iOS 압축형식 2 MB iOS ASTC 최신기기전용 압축형식 1.8 MB 안드로이드, iOS ASTC가 압도적으로 좋은 품질과 적은 용량을 사용하지만 유니티에서 기본설정이 아직도 ETC2..