渋谷ほととぎす通信

完全趣味でやってる技術メモ。※所属団体とは一切関係がありません。

Unity CRI ADX2LEエラー「CriAtomPlugin is not initialized」の対処


今週のお題「特大ゴールデンウィークSP」
CRI ADX2LEをUnityで使用していて、シーン開始フローの中でACFファイルをロードしたタイミングで、

CriAtomPlugin is not initialized

というエラーに遭遇した共有です。

ACFファイル自体はAtomCraftから正しく出力されて、UnityプロジェクトのStreamingAssetsに格納されていることを確認できています。 ちなみに、以下のようなコードでACFファイルをロードしています。

private IEnumerator LoadAcf()
{
    var path = $"{Application.streamingAssetsPath}/Hoge.acf";
    CriAtomEx.RegisterAcf(null, path);
    yield return null;

    if (CriAtomEx.GetNumGameVariables() == -1)
    {
        // ここでCriAtomPlugin is not initializedエラー
        Debug.LogError(message);
    }
}

CriWareLibraryInitializerとCriWareErrorHandlerがシーンになかった

一条さんの記事を改めて読んで、ADX2LEの導入をやってみて特定できました。

原因は単純で、CriWareLibraryInitializerとCriWareErrorHandlerを予めシーンに配置しておかないといけないということでした。

最後に

CRIのエラーログをググっても解決方法が出てこないことがよくあり困ることが多々あります。。。
少しハマりました。以上。