-
유니티에서 LZ4 압축을 사용하면서 Android, iOS, Windows에서 모두 잘 작동하는 라이브러리를 찾고 있다면, 아래 라이브러리를 추천할게.
🔥 추천 LZ4 라이브러리 (Unity 지원)
2️⃣ K4os.Compression.LZ4 (NuGet)
- Windows / Android / iOS 완벽 지원
- 네이티브 LZ4 성능에 가깝게 최적화
- 네트워크 패킷 압축, 데이터 저장 모두 사용 가능
사용 예시 (데이터 압축/해제)
using System; using K4os.Compression.LZ4; class Program { static void Main() { byte[] originalData = System.Text.Encoding.UTF8.GetBytes("Hello, LZ4 in Unity!"); // 압축 byte[] compressed = LZ4Codec.Encode(originalData, 0, originalData.Length); Console.WriteLine($"Compressed Size: {compressed.Length}"); // 해제 byte[] decompressed = LZ4Codec.Decode(compressed, 0, compressed.Length, originalData.Length); Console.WriteLine($"Decompressed: {System.Text.Encoding.UTF8.GetString(decompressed)}"); } }
✅ 장점: 네트워크 패킷 압축 지원, 성능 최적화
❌ 단점: NuGet 패키지 설치 필요
3️⃣ LZ4Sharp (GitHub)
- Android, iOS, Windows에서 문제 없이 동작
- IL2CPP 빌드 환경에서도 안정적으로 실행됨
- 단순한 API로 빠른 압축 적용 가능
사용 예시 (압축/해제)
using System; using System.Text; using LZ4Sharp; class Program { static void Main() { byte[] original = Encoding.UTF8.GetBytes("Unity LZ4Sharp Test"); ILZ4Compressor compressor = LZ4SharpFactory.CreateNewCompressor(); ILZ4Decompressor decompressor = LZ4SharpFactory.CreateNewDecompressor(); // 압축 byte[] compressed = compressor.Compress(original); Console.WriteLine($"Compressed Size: {compressed.Length}"); // 해제 byte[] decompressed = decompressor.Decompress(compressed); Console.WriteLine($"Decompressed: {Encoding.UTF8.GetString(decompressed)}"); } }
✅ 장점: 유니티 IL2CPP 지원, 네트워크 및 파일 압축 가능
❌ 단점: 다른 라이브러리보다 업데이트가 적음
🛠 추천 선택 기준
라이브러리 네트워크 패킷 압축 파일 압축 성능 최적화 Android/iOS 지원 IL2CPP 지원
K4os.Compression.LZ4 ✅ O ✅ O 🚀🚀 매우 빠름 ✅ 지원 ✅ 지원 LZ4Sharp ✅ O ✅ O 🚀 보통 ✅ 지원 ✅ 지원
🎯 결론: 어떤 걸 선택해야 할까?
- 네트워크 패킷 압축을 최적화하려면? → K4os.Compression.LZ4 추천
- 파일 압축과 패킷 압축을 함께 쓰려면? → LZ4Sharp 가능
네가 유니티에서 어떤 용도로 LZ4를 사용하려고 하는지 말해주면 더 구체적인 추천을 해줄 수 있어! 😊
- 네트워크 패킷 압축?
- 게임 데이터 파일 압축?
- 리소스 로딩 최적화?