KDT Unity 2주차~4주차 팀플 빌드 오류 해결
2023-12-08 TIL
알고리즘 문제
오늘의 알고리즘 문제 : 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
1
2
3
4
5
6
public class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[] {};
return answer;
}
}
해결
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Solution {
public int[] solution(int n, int m) {
int max, min;
max = n * m;
if(n < m)
{
min = n; n = m; m = min;
}
while(m!=0)
{
min = n % m; n=m; m = min;
}
return new int[] {n,max/n};
}
}
int max, min;을 사용하여 공약수와 공배수를 얻기 위한 변수를 생성합니다.
if(n < m)을 사용하여 각 수의 크기를 비교해 순서를 바꿉니다.
while(m!=0)을 사용하여 공약수를 구합니다.
return new int[] {n,max/n}; 공배수는 각 수의 곱/공약수 입니다.
프로젝트 빌드시 오류
에디터에서 작동시 정상적으로 작동을 합니다.
하지만 빌드시 오류가 나는 부분이 있었습니다.
JSON 오류
1
string filePath = Path.Combine(Application.dataPath, "Resources/Json/CharacterDate.json");
를 사용하여 제이슨 파일의 위치를 가져와서 해당 값을 바로 역직렬화하여 사용하는 방법을 채택했습니다.
하지만 빌드시 해당 데이터를 가져오지 못하는 일이 생겼습니다.
Json 해결
1
TextAsset jsonFile = Resources.Load<TextAsset>("Json/CharacterDate");
을 사용하여 Resources파일에서 TextAsset으로가져오는 작업을 통해 한번더 바꿔 사용합니다.
그랬더니 정상 작동합니다.
DB 오류
에디터에서의 경우 UTF-8을 자동으로 지원하여 DB에서도 UTF-8을 설정해주니 에디터에서 정상 작동합니다.
하지만 빌드했을 때 에디터에서 지원하는 UTF-8 변환을 지원하는 플러그인이 빠지고 빌드하는 문제 발생합니다.
그래서 DB 오류가 발생합니다.
DB 해결
유니티 에디터에서 지원하는 UTF-8 변환 플러그인을 해당 프로젝트 assets 폴더 plugins 안에 복사해서 넣어주니 빌드시 해당 플러그인을 사용하여 해결하였습니다.
UTF-8 변환 플러그인 (에디터 설치 경로)/(유니티 경로)\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32 안에 있는 I18N.dll와 I18N.West.dll 파일
오늘의 정리
빌드시 오류를 잡는 것은 크게 생각을 안해보았다.
왜냐하면 에디터에서 정상 작동하니까 빌드해도 다 정상 작동하겠지라는 생각이였다.
하지만 그렇지 않았고 빌드 후도 다 잡아줘야 하는 것이 중요했다.
앞으로 해야할 일과 하고 싶은 일이 많을 것 같다
