こんにちは。現在スマホで撮った画像をPCで受け取るようなアプリを開発しています
そこでMonobitを使い、webCameraで撮った画像をPC側に送信するような機能を考えたのですが、使おうとすると後述のマスター側に設定したUnityがOutOfMemoryでハングしてしまいます
該当部分のソースは以下のようになります
ここでスマホ側をスレイブ、PC側をマスターと呼んでいます(データ送信はスレイブ→マスターのみです)
また、MatはOpenCVforUnityでの型です
ここでRPCの使い方が何か間違えているような気がするのですが、詳しい方ご教授願えませんでしょうか?
よろしくお願いします
C#
1void Update () 2{ 3 4 if (hasInitDone && webCamTexture.isPlaying && webCamTexture.didUpdateThisFrame) 5 { 6 // スレイブ時webCamTextureをマスターに送る 7 if(!SavingParameter.IsMaster) 8 { 9 // webCamTextureをmatに変換する 10 Utils.webCamTextureToMat(webCamTexture, rgbaMat, colors); 11 12 // matをbyteに変換する 13 byte[] tImageBytes = new byte[(int)(rgbaMat.total() * CvType.CV_8UC4)]; 14 rgbaMat.get(0, 0, tImageBytes); 15 16 // byteデータをマスターに送る 17 monobitView.RPC("GetTextureData", MonobitEngine.MonobitTargets.All, tImageBytes); 18 } 19 Utils.matToTexture2D(rgbaMat, texture, colors); 20 } 21} 22 23/// <summary> 24/// マスター時、テクスチャーの情報をスレイブから受信し、rebaMatに復元する 25/// </summary> 26[MunRPC] 27void GetTextureData(byte[] texturedata) 28{ 29 Mat tDistMat = new Mat(requestedWidth, requestedHeight, CvType.CV_8UC4); 30 tDistMat.put(0, 0, texturedata); 31 32 rgbaMat = tDistMat; 33} 34
回答1件
あなたの回答
tips
プレビュー