全ては次世代ペアプロのため
OculusOverlayのように、デスクトップ1の表示をアプリ内で行うものをUnityでも作ってみます。
アプローチ
System.Drawing.Graphics.CopyFromScreen を使用する。
構成
DesktopDisplay.cs
- System.Drawing.Graphics.CopyFromScreenでデスクトップを一枚の静止画で取得して対象のTextureを毎UPDATE時に書き換える
ChangeDataToBytesFromImage.cs
- System.Drawing.Imageをbyte[]へ変換
- 引用元: http://note.chiebukuro.yahoo.co.jp/detail/n151474
Plugins/System.Drawing.dll
- Unityから参照するDLLはPlugins直下へ
- MonoDevelopからDLL参照追加
配布
配布のものは上記設定済みのunitypackage
https://drive.bitcasa.com/send/f2WIdgCfYDzEuKbqP3YxpTW3e83J4B7x7-jlKEK0zPn5
※2014/12/17リンク先修正
Bitcasaのサーバー環境移行があったためリンク先がなくなっておりました。@lexrktさんありがとうございます。
追記
.NET 2.0に変える必要があるようです。
uzkさん情報ありがとうございます。
@yuujii 突然の質問で申し訳ありません。Develog.VRのデスクトップの一部分をクリッピングするpackageを使ったところ、Editor上では動作しましたが、exeではクリッピングできませんでした。原因に心当たりありませんでしょうか。お時間があればご教授ください
— uzk (@uzkt) 2014, 8月 16
@yuujii エラーログを見たところ、TypeLoadExceptionというエラーが出ており、API compatible levelを.NET 2.0にしたところ解決しました。ありがとうございました。
— uzk (@uzkt) 2014, 8月 16