클라이언트 프로그래머의 일기/N년차 클라이언트 프로그래머의 일기 6

GPT한테 최적화를 시켜보았다.

개요는 이러하다. 우선 변수 string _desc와 int ReSizeValue가 존재하며 우리는 이 _desc의 길이가 ReSizeValue 값보다 크면 _desc의 중간 값을 기준으로 space인 char ' ' 값을 찾은 다음에 ' ' 값을 \n 값으로 변경시키는 작업을 진행한다. 내가 작성한 코드는 다음과 같다.  static string Function1(string _desc, int ReSizeValue) { if (_desc.Length > ReSizeValue) { int count = _desc.Length / 2; for (int i = count; i  이 함수를 main에서 10만번 돌렸을 때 32ms가 나왔으며, 이후 GPT에게 해당 코드를 상세하게 질문하면서 최적화..

유니티 프로퍼티에 로그 심어서 상태 변화 체크하기(Unity Property Log)

예시 사용 방법 public struct sTest { public int index; } 위와 같은 코드가 있고 해당 index 값을 변경하는 부분이 전체 참조 했을 때 100개가 넘게 나온다고 생각해보자. 우리는 이 index를 추적할 때 이 100개 중 어떤 곳에 로그를 심어야 할 지 고민이 생길 때가 있다. 그럴 때 사용하면 좋은 방법을 설명하려한다. 코드는 다음과 같다. public struct sTest { public int index { get { return gIndex; } { set{ Debug.Log("Change Index = " + value); gIndex = value; } } public int gIndex; } 위와 같이 적용 하면 sTest 구조체에 index 값이 se..

유니티 에러가 함수의 끝을 가리키는 경우 해결 방법.

Unity 2020.3.31f1 버전에서 작업 진행 중 발견한 사항입니다. 에러 로그가 함수의 끝을 가리켜서 정확한 에러 발생 지점을 찾지 못하는 상황이 발생했습니다. 해결 방법은 다음과 같습니다. Ctrl + 7 로 Profiler 를 활성화 후 Deep Profile 체크 후 해당 에러를 다시 발생 시킬 경우 해결 완료.

유니티 빌드 실패 시 FATAL EXCEPTION: UnityMain 해결 방법

유니티 빌드 실패 시 발생하는 에러 로그와 해결 방법입니다. 에러 로그. E/AndroidRuntime: FATAL EXCEPTION: UnityMain Process: packageName, PID: xxxxx java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Version '2020.3.31f1 (6b54b7616050)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a' Build fingerprint: 'lge/caymanlm/caymanlm:10/QKQ1.200308.002/2024720026ad4:user/release-keys' ..

CMD로 Tortoise SVN 기능 사용하기(update, commit, log)

주의사항! CMD는 관리자 권한으로 열어주셔야 합니다. Update "(TorToise설치위치)\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:"(프로젝트 경로)" /closeonend:2 Commit "(TorToise설치위치)\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"(프로젝트 경로)" Show Log "(TorToise설치위치)\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:"(프로젝트 경로)" /closeonend:0 : 대화 상자를 자동으로 닫지 않기 /closeonend:1 : 오류가 없으면 자동으로 닫기 /closeonend:2 :..

Unity Debug Log의 단점 보완하기

유니티의 Debug는 UnityEngine에서 제공하는 매우 유용한 클래스로 하루에 몇 번씩 사용하는 함수입니다. Log와 DrawRay 등 다양한 방법으로 자신이 원하는 위치에 쉽게 Debug를 할 수 있는데요 저는 Debug.Log와 같은 함수들이 APK로 빌드 시 유니티 Build Settings에서 Development Build를 활성화해야만 해당 로그가 출력되는 줄 알았습니다. 하지만 Release로 빌드 시에도 해당 로그들은 출력됐으며, 이 로그들을 개발자가 아닌 앱 사용자라면 누구나 확인할 수 있으며 동시에 불필요한 성능을 잡아먹고 있었습니다. 이 문제를 보다 효율적으로 해결하기 위해 저는 2가지 방법을 채택했습니다. 1. 정규식을 사용해 지워도 되는 로그들과 그렇지 않은 로그들을 분류해서..