質問: Unity 上で(Windows APIの)Bitblt(ビットマップを描画する関数) と同等な動作をする手段が知りたい。 C++(Windows) で書いてあるゲームを Unity に移植させたいと考えています。 Unity でゲームを作っておくと、Windows、Mac、Android, iPhone 上で動作する 実行ファイルが簡単にできるとからオススメです、という話を聞いたからです。 Unity 自体は、昨日環境をインストールしたばかりで、全く知らないです。 Unity の勉強を始めると仕組みが結構違うみたいで、簡単でないなと思いました。 困っているのは、Bitblt (ビットマップを描画する関数)と同等のことをさせたいのですが、 検索してもヒットしなくて困っています。もう少し正確に書くと、やりたいことは、 「画面の座標(posx,posy)に、ビットマップの座標(srcx,srcy)の幅width高さheightの部分を 表示させたい」 です。 Unityでは、こんな基本的なことが出来ないのでしょうか? コマンドはなくても、こうすれば、同等なことができます、という情報でも構いません。 よろしくお願いいたします。
回答: Unityで画像を表示させるときは、「Sprite」を使ってください。 使い勝手はWin32APIとは大幅に違いますが、より使いやすく、かつ圧倒的に最適化されています。 まずは次のようなチュートリアルを参考にゲームを作ってみてください。 Unityの世界は、基本的には「毎フレーム描画命令を発行する」ではなく、「描画コンポーネントを持ったGameObjectを置いておくと、それが勝手に描画される」という思想になっています。 この思想の違いは、Unityは「Win32API」ではなく「DirectX」「OpenGL」などのグラフィックAPIを下地としているため、描画の最小単位が「ポリゴン」となっていることに起因しています。 ポリゴンを作って、テクスチャを貼って、シェーダーを用意して、描画命令を発行して...などとすることで一応「毎フレーム描画命令を発行する」も可能ですが、とてもテクニカルなコードを書くことになるので、まずはUnityの思想の上でゲームを作ってみましょう。