概要 Unityでのゲーム制作には基本的にはC#を使う。しかし、場合によっては他の言語を用いたいことがあり、Unityではネイティブプラグインという方法で、外部で生成されたDLLを利用することが可能である。 筆者は、ダンジョン生成のプログラムをHaskellで作成し、それをUnity内で利用したいという経緯があったので、今回、HaskellのシンプルなコードをCabalとStackを利用してDLLを作成し、それをUnityから利用する効率的な方法を模索した。 環境はWindows 10 64bit 1. 準備 Stackで新しいプロジェクトを作る。 一度ビルドstack buildして、package.yamlからcabalファイル(haskell-foreign-library-test.cabal)を生成する(バックでhpackが動いている)。 後述するが、ライブラリ作成にはCabal