ABOUT ME

Today
Yesterday
Total
  • Unity LZ4
    카테고리 없음 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 🚀 보통 ✅ 지원 ✅ 지원

    🎯 결론: 어떤 걸 선택해야 할까?

    1. 네트워크 패킷 압축을 최적화하려면?K4os.Compression.LZ4 추천
    2. 파일 압축과 패킷 압축을 함께 쓰려면?LZ4Sharp 가능

    네가 유니티에서 어떤 용도로 LZ4를 사용하려고 하는지 말해주면 더 구체적인 추천을 해줄 수 있어! 😊

    • 네트워크 패킷 압축?
    • 게임 데이터 파일 압축?
    • 리소스 로딩 최적화?
Designed by Tistory.