카테고리 없음
Unity LZ4
denny
2025. 4. 2. 11:34
유니티에서 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를 사용하려고 하는지 말해주면 더 구체적인 추천을 해줄 수 있어! 😊
- 네트워크 패킷 압축?
- 게임 데이터 파일 압축?
- 리소스 로딩 최적화?