前提・実現したいこと
C++ 初心者で、Unity 用 NativePlugin を制作しています。
対象プラットフォームは、Windows/Mac/Android/iOS であり、プラグインは C++ を利用して作っています。
一旦、Windows のものを作ろうと思い、Visual Studio で制作しています。コレクション関連を自前で実装するのは厳しいので、std::map や std::for_each を利用しています。
Visual Studio 上でテストアプリを作り、このプラグインの動作は確認済みです。
いざ、作成した dll を Unity 上で利用しようとすると、「std::map の count() で、そのキーが存在しているにもかかわらずカウントされない」とか、「std::for_each の処理に差し掛かったら落ちる」などあり、正常に動作しません。前述しました通り、Visual Studio 上でのテストアプリではこの処理は問題なく実行されています。
調べてみたところ、下記記事において「STL は使用してはならない」とあります。
ネイティブプラグイン開発のススメ (Unity/Cocos2dx)
しかしながらコレクションを自前実装するのはスキル的に難しいので、なんとか使えればと思っています。
記事内には「ちょっと凝ったプラグインを作る場合は素直に STL を使って幾つかの STL バージョン用のバイナリを生成してます。」とあるので、何か回避策はあるのだろうと思うのですが、調べてみてもそういった内容の記事は見つからず、皆目見当がつきません。
ですので、下記の点をお尋ねしたいです。
- Windows/Mac/Android/iOS で扱う Unity プラグインにおいて、std::map や std::for_each を問題なく利用できる方法
- 難しい場合は、何か代替となるようなライブラリがあるか
- そもそもそういう問題ではない場合、何が問題か
以上、よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Unity 2017.3.1p3
VisualStudio 2017

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/19 10:09