コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】gzipで文字列を圧縮してデータ容量を抑える

スクリプト

使い方

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        var rawData        = "ピカチュウ";
        var compressedData = GZipCompressor.Compress( rawData );
        var result         = GZipCompressor.Decompress( compressedData );

        Debug.Log( result );
    }
}

開発中のゲームの .txt 形式のデータが 1.4MB もの容量になっていたので
gzip で圧縮したところ、73.3 KB まで減らせることができました

.txt でプレーンな文字列データを管理しており
容量が気になる場合は gzip は効果的です

もし上記の GZipCompressor クラスを使用する場合は
「ICSharpCode.SharpZipLib.lib」を Unity プロジェクトに追加する必要があります

ICSharpCode.SharpZipLib.lib の導入方法

  1. 下記の URL にアクセスする
    http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
  2. 「Assemblies」の行の「Download」を選択する
  3. ダウンロードした「SharpZipLib_0860_Bin.zip」を展開する
  4. 「net-20」フォルダ内の「ICSharpCode.SharpZipLib.dll」を
    Unity プロジェクトの「Plugins」フォルダに追加する
    (「Plugins」フォルダが存在しない場合は作成する)