コガネブログ

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

【Unity】Addressables で Basic 認証が設定されたサーバからリモートカタログをダウンロードする方法

検証環境

  • Addressables 1.16.19

概要

  • Addressables はデフォルトでは Basic 認証が設定されたサーバから
    リモートカタログをダウンロードすることができない
  • TextDataProvider.Start 関数で UnityWebRequest を使用して
    リモートカタログのダウンロードが実行されるので
    ここで UnityWebRequest.SetRequestHeader を指定すれば
    Basic 認証が設定されたサーバからダウンロードできるようになる

TextDataProvider.cs

53 行目辺り

else if (ResourceManagerConfig.ShouldPathUseWebRequest(path))
{
    UnityWebRequest request = new UnityWebRequest(path, UnityWebRequest.kHttpVerbGET, new DownloadHandlerBuffer(), null);
    request.SetRequestHeader( "AUTHORIZATION", "" ); // ★
    m_RequestQueueOperation = WebRequestQueue.QueueRequest(request);
    if (m_RequestQueueOperation.IsDone)
    {
        m_RequestOperation = m_RequestQueueOperation.Result;
        if (m_RequestOperation.isDone)
            RequestOperation_completed(m_RequestOperation);
        else
            m_RequestOperation.completed += RequestOperation_completed;
    }