OpenCV for Unityの動作をデバッグする方法
準備
方法
Debug.Log()
code:cs
if (texture != null && colors != null) {
Debug.Log("textureとcolorsが初期化されているので処理続行");
Utils.matToTexture2D (mat, texture, colors);
} else {
Debug.LogError("textureとcolorsが初期化されていないので処理できません!");
}
自分の実装した処理を確認する時
Unityの基本のデバッグ方法ですがDebug.Log()でどこまで処理が走っているかや、データが正しいかなどを確認できます。
try catch
code:cs
try {
Utils.matToTexture2D (mat, texture, colors);
} catch (System.ArgumentException e) {
Debug.Log ("ArgumentExceptionが起きた!内容:" + e.Message);
} catch (System.Exception e) {
Debug.Log ("Exceptionが起きた!内容:" + e.Message);
}
OpenCVForUnityの内部処理を確認する時
OpenCVForUnityのライブラリの中にはthrowをしている部分が多数ありますので受け取ることができます。
例えばmatToTexture2DでMatのサイズとTexture2Dのサイズが違う時などにthrowされるのでそれをcatchしたらエラーで処理を止めずにTexture2Dを作り直すなどができると思います。
Utils.setDebugMode()
code:cs
Utils.setDebugMode(true);
Utils.matToTexture2D (mat, texture, colors);
Utils.setDebugMode(false);
OpenCVの内部処理を確認する時
OpenCVForUnityではなく、OpenCVの内部で起きたエラーをエラーログとして表示します。引数にtrueを送るとエラーログの表示がONに、falseでOFFになります。