본문 바로가기
반응형

개발56

[UNITY]AssetBundle 압축 종류 BuildAssetBundleOptions.None: 이 번들 옵션은 직렬화된 데이터 파일의 압축된 단일 LZMA 스트림인 LZMA 압축 포맷을 사용합니다. LZMA 압축 포맷은 번들을 사용하기 전에 전체 번들의 압축을 풀어야 합니다. 따라서 파일 크기는 가장 작아지지만, 압축 해제 때문에 로드 시간이 조금 길어지게 됩니다. BuildAssetBundleOptions를 사용하는 경우 번들의 에셋을 사용하기 위해 모든 번들의 압축을 풀어야 합니다. 번들의 압축이 풀린 이후에는 디스크에서 LZ4 압축 포맷을 사용하여 다시 압축됩니다. LZ4는 번들의 에셋을 사용하기 위해서 모든 번들의 압축을 풀 필요가 없습니다. 이 옵션은 번들의 에셋을 사용하기 위해서 모든 에셋을 로드해야 하는 경우 사용하기에 적합합니다... 2020. 10. 6.
delegate란 무엇일까? delegate란 무엇일까? delegate의 사전적 의미로는 1. (집단의 의사를 대표하는) 대표(자) 2. (권한업무 등을) 위임하다 3. (대표를) 뽑다 라고 네이버 영어사전에 나오네요. 프로그래밍에서는 대리자로 사용됩니다. 즉 누군가를 대신해서 일을 해주는 역할입니다. 델리게이트는 메소드를 참조합니다. 메소드의 주소를 할당한후 델리게이트를 호출하면 델리게이트가 할당한 메소드를 호출하는 것이죠. 비교하자면 C++에 포인터랄까요. 델리게이트의 문법입니다. 델리게이트는 메소드 문법과 똑같고 이름 앞에 delegate 키워드만 붙여주면 됩니다. public delegate int CustomDelegate(int src); 예를 들면 이렇게 사용합니다. 메소드를 참조해야 하기 때문에 메소드 문법과 같게 .. 2020. 9. 22.
Stack(스택)이란 무엇일까? "Stack"은 사전적 의미로 (보통 깔끔하게 정돈된) 무더기[더미] (깔끔하게 정돈하여) 쌓다[포개다]; 쌓이다, 포개지다 라고 합니다. 자료구조에서 스택이란 데이터와 같은 것을 쌓다가 맞는 표현인 것 같습니다. 일반 적으로 쌓은 물건을 꺼낼때 어떻게 할까요? 가장 마지막에 쌓은 물건을 하나씩 꺼내 써야 합니다. 그림으로 표현 하자면 스택은 이렇게 마지막으로 입력된 데이터가 먼저 출력되는 방식입니다. LIFO(Last in First out)이라고도 합니다. 활용 예를 들어보면 문서작업할때 작업을 할때 마다 행동 하나하나가 스택에 쌓이고 되돌리기(Ctrl+z)를 사용하면 마지막 행동을 하나씩 다시 불러옵니다. 2020. 9. 20.
Queue(큐)란 무엇일까? "Queue"는 사전적인 의미로는 무엇을 기다리는 줄, 또는 대기 행렬이라고 합니다. 즉 대기열, 기다리는 줄이죠. 마치 일상생활에서의 버스를 기다리는 줄 같은 것입니다. 버스 줄은 새치기를 하지 않는 이상 먼저 기다렸던 사람부터 버스에 타기 시작합니다. 프로그래밍에서도 같은 개념입니다. 그럼 그림으로 나타내보겠습니다. "Queue"는 이렇게 입력 시 대기열의 마지막에 저장되고 큐에서 대기 중인 것을 순서대로 하나씩 출력시킵니다. "FIFO(First In First Out)" 자료구조입니다. 말 그대로 먼저 들어온 것이 먼저 나가는 말입니다. Queue는 언제 사용할까요? 바로 어떤 작업을 순서대로 실행시키기 위해 사용됩니다. 예를 들면 턴 제 게임에서 차례대로 1번 스킬 2번 스킬 3번 스킬을 한번에.. 2020. 9. 18.
[C#]가우스의 등차수열합 공식 [카를 프리드리히 가우스] 독일의 수학자이며 물리학자이며 어릴때부터 수학신동이였다네요. 어린시절 가우스는 아래 문제를 1+2+3+4+...+97+98+99+100 = ? 단번에 해결 했다고 합니다. 가우스의 풀이 방법은 이렇습니다. 1+100 = 101 2+99 = 101 3+98 = 101 ... 50+51 = 101 그러므로 101x50 = 5050 이라는 결론을 내었습니다. 이 공식을 코드로 풀어보자면 이렇게 나온다. //등차 수열 int[] array = {1,2,3,4,5,6,7,8,9,10}; //배열길이 int Langth = array.Length; //결과 S=n(a+l)/2 int result = (int)((array[0] + array[Langth - 1]) * (Langth * 0.. 2020. 8. 21.
[C#] 배열의 총합 배열 A = {1,2,3,4...,n} ; 배열 A의 총 합을 구하는 코드를 작성하시오 1. int Sum(int[] array) { if(array==null || array.Length==0) return 0; int total = 0; for(int i =0 ; i< array.Length;++i) { total +=array[i]; } return total; } 2. 가우스의 등차수열 1 int Sum(int[] array) { if(array==null || array.Length==0) return 0; int sum = array[0]+array[array.Length-1]; sum = sum*(array.Length*0.5f); return sum; } 2020. 8. 20.
[C#] 부분 집합 유무 확인 집합 A={....,}; 집합 B={....,}; A가 B에 부분집합인지 확인하는 코드를 작성하시오. 1번 코드 bool isSubset(int[] A, int[] B) { if(A == null || B == null) return false; if (A.Length > B.Length)//불필요한 연산을 제거한다. return false; for (int i = 0,j = 0; i = B.Length) return false; } return true; } 2번 코드 bool isSubset(int[] A,int[] B) { if(A == n.. 2020. 8. 20.
프로그래밍이란? 프로그래밍은 단순히 컴퓨터 프로그래밍 언어가 가지고 있는 문법을 익힌 다음 그 문법에 맞춰서 기계적으로 동작하는 알고리즘을 작성하는 일이 아니다. 프로그래밍은 사람의 삶 속에서 일어나는 구체적인 일들을 사이버 세상으로 옮겨주는 마법의 통로와 같은 역할을 한다. -누워서 읽는 알고리즘 중에서- 계속 추가 예정... 2020. 8. 20.
[C#]파일 존재 유무 확인하기 File.Exist(string) 지정된 파일이 존재하는지 확인합니다. [함수원형] public static bool Exists (string path); [Parameters] 이름 타입 설명 path string 확인할 파일 경로입니다. [예] void Test() { if(File.Exist("D:/buildlog.txt")) print("파일이 존재합니다."); else print("파일이 존재하지 않습니다."); } 2020. 8. 7.
[C#]파일 이름 변경하기 File.Move(string,string) 지정된 파일을 새 위치로 이동하고, 새 파일의 이름을 지정할 수 있습니다. [함수원형] public static void Move (string sourceFileName, string destFileName); [Parameters] 이름 타입 설명 sourceFileName string 이동할 파일 이름입니다.(경로 포함) destFileName string 새 경로 및 이름입니다. [예] bool Rename(string src,string dest) { if(File.Exists(src))//소스 파일이 존재하는지 체크 합니다. { try { File.Move(src,dest);//소스파일을 데스트파일로 이동(이름변경)합니다. return true; }.. 2020. 8. 7.
[UNITY]Unity AssetBundle.RecompressAssetBundleAsync Unity AssetBundle.RecompressAssetBundleAsync 유니티 에셋번들파일을 재압축하여 저장하는 함수. [사용이유] UnityWebRequestAssetBundle를 통해 로드된 LZMA 압축 에셋 번들은 자동으로 LZ4 압축 포맷을 통해 다시 압축되어 로컬 파일 시스템에 캐시된다. UnityWebRequestAssetBundle를 사용하지 않고 LZMA 압축 에셋 번들을 로컬디스크에 저장할경우 에셋번들 로드가 상당히 무거워진다. AssetBundle.RecompressAssetBundleAsync를 활용하여 다운받은 LZMA형식의 에셋번들을 가벼운 형식으로 재압축하여 앱네 로드를 빠르게 할 수 있다. [함수원형] public static AssetBundleRecompressO.. 2020. 8. 5.
[UNITY]Null Reference Exception이란 무엇입니까? Null Reference Exception이란? 어떤 오브젝트에도 참조하고 있지 않는 참조 변수에 액세스하려고 하면 NullReferenceException이 발생합니다. 참조 변수가 오브젝트를 참조하지 않으면 그것은 null로 취급될 것입니다. 변수가 “NullReferenceException”을 실행함에 따라 null일 때 실행시 오브젝트에 액세스하려고 하는 것을 알려줍니다. C# 및 JavaScript의 참조 변수는 C 및 C++ 포인터의 개념과 비슷합니다. 어떤 오브젝트도 참조하고 있지 않은 것을 나타 내기 위해 참조 형식은 null이 기본입니다. 그러므로, 참조 되고 있는 오브젝트에 액세스하고, 없으면NullReferenceException을 얻습니다. 코드에서 NullReferenceExce.. 2020. 7. 24.
728x90