전체 글 (22) 썸네일형 리스트형 델리게이트(Delegate) 와 인보크(Invoke) 델리게이트(delegate)란? 위임자 /대리자 c++의 포인터와 같은 개념입니다. 즉 메서드의 포인터만 저장할뿐 실제 내부 코드를 저장하지 않습니다. 주로 이벤트 관련하여 사용 됩니다 Invoke(Invoke)란? (법, 규칙등을)들먹이다. (누구의 이름을)부르다, (프로그램등을)불러오다. 하나의 Form을 다른 thread에서 접근하게 될 경우에 기존의 Form과 충돌이 날 수 있다. 이 때 invoke 를 사용하여 실행하려고 하는 메소드의 대리자(delegate)를 실행시키면 된다. 예를 들어 myFormControl.Invoke(myformControl.myDelegate) 인자로 받은 Form Instance/form에 딸린 Invoke/인자로 받은 Form Instance에 들어 있는 함수를 .. 동기(Synchronous)와 비동기(Asynchronous) 동기(Synchronous)란? 동기란 흔히 우리가 알고있는 절차지향방식이라고 생각하면 됩니다. 순서에 맞춰 이 코드가 실행되기 전까지에는 해당 코드가 실행되지 않습니다. 즉 순서가 정해져 있습니다. 장점은 순서가 직관적이고 정해져 있습니다. 단점은 순서가 정해져 있고 해당 순서가 오기전까지에는 다른 실행은 기달려야 합니다. 유니티는 기본적으로 동기 방식을 사용하고 있습니다. 비동기(Synchronous)란? 비동기란 동기의 반대로 절차지향이 아닌 해당 코드가 끝나지 않고도 다음 동작을 할 수 있습니다. 즉 순서를 보장해주지않고 요청한 작업이 완료 한 뒤에 순서를 직접 정해줘야 합니다. 하지만 다른작업이 오래걸리더라도 기다리지 않고 다른작업을 처리해주기 떄문에 굉장히 효율적 입니다. Task 클래스 .. 맥 버전을 12.3으로 업데이트 하고 유니티 플레이가 안되는 경우 https://github.com/techyworm10/firebase-unity-sdk-editor-python-fix#firebase-unity-sdk-editor-python-fix 위 깃허브 링크의 파일들을 다운로드 받고 Firebase.Editor 폴더의 .meta 제외한 파일들을 프로젝트의 동일 폴더에 덮어쓰기 하면 해결. mac 12.3 버전이 아니면 덮어쓰기한 파일들은 커밋하시면 안됩니다. sdk가 정상적으로 적용했는데 호환이 안되거나 못찾는다면 proguard 등록을 확인하자 회사에서 퍼블리셔와 일하던중 퍼블리셔에게 Helpshift sdk를 설치하고 적용해달라고 요청이 왔습니다. https://developers.helpshift.com/sdkx-unity/android/ (고객대응 sdk) 이제 도큐멘트에 따라 잘적용 했지만 계속 안드로이드에서 해당 sdk를 인식 못하는 경우가 발생하였습니다. 하지만 이때 저는 내가 도큐멘트를 보면서 실수한 부분이 있을거라 생각해서 4시간 동안 재설치 및 다른 도큐멘트 찾는 걸 반복하였습니다. 이때 설마 proguard에 등록을 하지 않은 sdk는 호환이 불가능하다 라는 게 떠올라 황급히 패키지를 Proguard를 적용하였고 정상적으로 동작 했습니다. 느낀점: 항상 sdk를 설치할때 호환이 안되거나 sdk를 못찾는다면 Proguard를 등.. 국가 마다 다른 데이터 파싱 문제 라이브 서비스도중 System.DateTime 뿐만아니라 특정 Float parse에도 특정구가에 표기가 다르다는 사실을 알았다. (라이브 도중 특정국가에 파싱에만 Firebase Crashlytics에 잡히는걸 확인) datetime 도 태국처럼 시간표기에 문제가 있는데 float parse도 문제가 있을 수 있다. ex) 미국 or 한국 표기 :1,234,567.89 러시아 or 브라질 표기 : 1.234.567,89 이처럼 표기법이 다른데 문제는 float.parse를 할때 에러를 발생 시킬 수 있다. 해결법은 간단하다. float.parse를 할떄 뒤에 cultureinfo invariantculture 를 써주면 된다. float.parse(6.245 ,CultureInfo.InvariantCu.. [FlatBuffer]플랫버퍼에 대해서 FlatBuffer란 C++, C#, C, Go, Java, JavaScript 등등의 언어를 지원하는 크로스플랫폼 직렬화 라이브러리다. 원래 Google에서 게임 개발 및 기타 성능이 중요한 응용 프로그램용으로 제작되었고, GitHub(https://github.com/google/flatbuffers)에 소스가 공개되어 있는 오픈소스 라이브러리이다. 실제로 사용했을때 느꼇던 장점과 단점이 명확하다. 장점 1. 데이터에 패킹 / 언패킹 할 필요없이 데이터가 직렬화 되기 떄문에 세이브 / 로드 속도가 빠르다. 2. 따라서 직렬화 되있는 데이터이기 떄문에 메모리 효율성과 속도가 빠르다. 3.많은 언어를 지원한다 단점 1. 데이터가 선형구조로 되어 있어서 데이터 삭제가 자유롭지 않다. 2. 데이터가 선형구조.. 이전 1 2 3 다음