1. FTDI USB to Serial Driver 문제
이 문제는 SerialPort 를 사용하는 즉, 장치관리자에서 볼 수 있는 '포트 ( COM & LPT )' 에서 호환이 안되면 연결이 되지않고, 드라이버를 설치해야하는데 설치를 해도 Port 가 생성이 안되는 경우가 있다. 이럴땐 반드시 '윈도우 업데이트' 를 한번 해보는 것을 추천한다.
위의 FTDI USB 를 윈도우 업데이트를 했더니 또 다시 설치가 되면서 적용이 되는 것을 확인 할 수 있었다.
2. 유니티에서 File > Build Settings > Player Settings > Player > Other Settings > Configuration 안에
Scripting Backend - Mono 또는 IL2CPP 를 설정 할 수 있다.
그리고 SerialPort 를 사용하려면 Api Compatibility Level 에서 .NET Standard 2.1 또는 .NET Framework
를 설정할 수 있는데 이때 선택지를 잘 선택해서 빌드를 해주어야 한다.
ChatGPT 를 통해서 검색해본 차이점이다.
1. 성능: IL2CPP가 Mono보다 빠름
- IL2CPP는 C# 코드와 .NET API 호출을 C++로 변환하여 네이티브 코드로 컴파일하기 때문에, 실행 성능이 뛰어납니다. 특히 모바일 및 콘솔 게임에서 IL2CPP의 성능이 Mono보다 훨씬 우수한 경우가 많습니다.
- 반면, Mono는 JIT(Just-in-Time) 컴파일 방식을 사용합니다. 코드 실행 중에 필요한 부분을 즉시 컴파일하므로 개발 중에는 빠른 실행과 테스트가 가능하지만, 최종 빌드 성능에서는 IL2CPP가 더 뛰어납니다.
2. 보안 및 코드 난독화: IL2CPP가 Mono보다 안전함
- IL2CPP는 코드가 네이티브 C++로 변환되고, 모든 코드를 AOT(Ahead-of-Time) 컴파일하여 빌드하기 때문에 역공학이 어렵고 보안성이 높습니다.
- 반면 Mono는 CIL(Common Intermediate Language)로 컴파일된 DLL이 포함되어 배포됩니다. 이 DLL은 쉽게 디컴파일될 수 있어 코드 유출 위험이 있습니다.
3. 플랫폼 지원: IL2CPP는 더 많은 플랫폼에 대응
- IL2CPP는 iOS, Android, 콘솔(PlayStation, Xbox 등), WebGL과 같은 다양한 플랫폼을 지원합니다. 특히 iOS는 JIT 컴파일을 허용하지 않아 Mono 대신 IL2CPP가 필수입니다.
- Mono는 일반적으로 Windows, Mac, Linux 데스크탑 환경과 Android를 잘 지원하지만, 콘솔 및 일부 플랫폼에서 제약이 있습니다.
4. 메모리 관리: IL2CPP가 더 나은 관리 가능
- IL2CPP는 AOT 컴파일 덕분에 메모리 사용량을 더 효과적으로 최적화할 수 있습니다. 이로 인해 메모리 관리와 성능 면에서 IL2CPP가 유리할 때가 많습니다.
- Mono는 실행 시점에 메모리를 동적으로 할당하고 관리하므로, 특히 고성능이 요구되는 환경에서는 IL2CPP에 비해 다소 불리할 수 있습니다.
위의 설명대로 배포를 해주기 위해서는 IL2CPP 가 좋은 성능을 가지고 있지만! 여기서 중요한건
이런 문제다.
IL2CPP와 .NET API 호환성 문제
IL2CPP는 C# 코드를 C++로 변환하여 실행하기 때문에, 모든 .NET 라이브러리와의 호환성을 보장하지 않습니다. System.IO.Ports 라이브러리는 일부 네이티브 Windows API와 직접 상호작용하기 때문에, IL2CPP 빌드 과정에서 문제가 발생할 수 있습니다.
즉, 일부 지원해주지 않는 DLL 이 있으므로, 예상치 못한 에러가 발생해서 실행이 안될 수 있다. 그러므로 .NET API 를 사용한다면 빌드를 할때
Mono 또는 IL2CPP 를 잘 선택해서 테스트 해봐야한다.
'Unity' 카테고리의 다른 글
[Unity] TextMeshPro MarkTag 사용 시 Color Overlay 되는 상황 해결 (0) | 2024.10.08 |
---|---|
[Unity] Screen Space - Overlay 일때 UI 에 Particle 입히는 방법 (0) | 2024.06.26 |
[Unity] Canvas 위에 마우스 위치 가져오기 (0) | 2024.05.08 |
[Unity] 윈도우 데스크탑 인스톨러 만들기 (0) | 2023.08.08 |
[Unity] RectTransformUtility 팁 (0) | 2023.05.26 |