2017-10-25 8 views
0

Unity(+ Vuforia)で作業していますが、vuMark拡張現実オブジェクト(これはVuforiaのもの)を識別する変数をいくつか印刷しようとしました。しかし、私はそれが動作するように見えることはできません。UnityとC#DebugLogがすべて印刷されていない

私のコードは以下の通りです。ここでは、vuMarkIDを「テーブル」と比較したいと考えています。しかし、DebugLogでは、私の2番目のステートメント(Debug.Log("vuMarkCompareToTable..."))は1を返します。最初のステートメント(Debug.Log("ID = {0}"...))は "テーブル"を返します。私はvuMarkID文字列オブジェクトをトリミングしようとしましたが、また、以下のように直接変換しようとしました。

もう1つの奇妙なことは、最初のステートメントのデバッグログに「テーブル」の後には何も印刷されません。私はvuMarkID+"END"のようなものを使用して連結しようとしましたが、ステートメントは単に "テーブル"で切り捨てられます。私は"ID = {0}{0}"を使って印刷を試みても、最初の "表"だけが印刷されます。 vuMarkIDオブジェクトが変更されても(たとえば、Stoolへ)、最初のvuMarkIDオブジェクトの後には何も印刷されません。

"Table"の後にテキストを認識し、引数が(一見)同じ場合、CompareTo関数が0を返すようにDebug.Logを取得するにはどうすればよいですか?

編集:私もDebug.Log(string.Format("ID = " + vuMarkID + "DONE"));を試しました(テキストの後に何かがあるかどうかを確認しようとしています)が、vuMarkIDの直後にも切断されます。私は改行のために置き換えようとしました、もしそれがあったとしても、それは効果がありませんでした。表後

//Gets the id of a VuMark Object 
string vuMarkID = GetVuMarkId(vuMarkObj).ToString(); 
if (vuMarkID.CompareTo("Table ") == 0) 
{ 
    Debug.Log("Table found from tracking!"); 
} 
else 
{ 
    string logdebug = vuMarkID; 
    object[] args = new object[] { (vuMarkID), vuMarkID.CompareTo("Table") }; 
    Debug.Log(string.Format("ID = {0}", logdebug)); 
    Debug.Log("vuMarkCompareToTable = " + (vuMarkID.Trim().CompareTo("Table"))); 

} 
+0

を支援.Log(String.Format( "ID = {0}" + logdebug)を使用して、Console.WriteLineのように置き換える(string.Format( "ID = {0}"、logdebug) 。 –

+0

何らかの理由で、それはそれを好まない。 'コールバックで例外が発生する:System.Reflection.TargetInvocationException:例外が呼び出しのターゲットによってスローされました。 ---> System.FormatException:インデックス(0から始まる)は0より大きく、引数リストのサイズより小さくなければなりません。 ' – A4Treok

+0

おめでとうございます。固定された「全テキストが表示されない」のあなたの問題は、今では(0未満である)あなたのvuMarkIDが範囲外であると思われる、あなたはその値を使用することを修正する必要があります。 –

答えて

0
if (vuMarkID.CompareTo("Table ") == 0) 

" "(空間)。

vuMarkIDが "表"の場合、一致しないのでelse文になります。

あなたはスペースを削除する必要があります。

if (vuMarkID.Trim().CompareTo("Table") == 0) 

、他の何かあれば、オブジェクトを印刷するには:

次の操作を行います。

string vuMarkID = GetVuMarkId(vuMarkObj).ToString(); 
Debug.Log(vuMarkID); // this will always tell you id. No matter what it is. 

if (vuMarkID.CompareTo("Table") == 0) 
{ 
    Debug.Log("Table found from tracking!"); 
    // do table related stuff. 
} 

・ホープこれはあなたがデバッグを使用傾ける

+0

ああ、vuMarkIDは何らかの理由で実際に長さが10であることがわかりました。しかし、残っている文字が何であるかを知ることはできません(私はトリムして改行を置き換えました)ので、まだ解決策を投稿できません。 Unityがデバッガでそれらを処理する方法かもしれません。私は助けに感謝します。 – A4Treok

関連する問題