AnswerBun.com

Unity and C# DebugLog Not Printing Everything

Stack Overflow Asked by A4Treok on January 1, 2022

I’m working with Unity(+Vuforia), and I’m having some problems trying to print some variables that I want to identify the vuMark Augmented Reality Object (this a Vuforia thing) with, but I can’t seem to get it to work.

My code is below, where I want the vuMarkID to be compared to “Table”. In the DebugLog, however, my second statement (Debug.Log("vuMarkCompareToTable...")) returns 1. Even though the first statement (Debug.Log("ID = {0}"...)) returns “Table”. I have tried trimming the vuMarkID string object, and also tried converting it directly, as you see below.

The other strange thing is nothing will print after “Table” in the debug log, for the first statement. I’ve tried concatenating using something like vuMarkID+"END", and the statement just cuts off at “Table”. I’ve even tried printing using "ID = {0}{0}", and only the first “Table” prints. Even if the vuMarkID object changes (for instance, to Stool), it still does not print anything after the initial vuMarkID object.

How can I get the Debug.Log to recognize text after “Table” and have the CompareTo function return 0 when the arguments are (seemingly) the same?

Edit: I tried Debug.Log(string.Format("ID = " + vuMarkID + "DONE")); as well (I’m trying to see if there’s something after the text), but that also cuts off immediately after the vuMarkID. I tried replacing for newline, just in case it was there, but it didn’t have an effect.

//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")));

}

One Answer

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

Note the " "(space) after Table.

If vuMarkID is "Table", it would go to else statement as it doesn't match.

You need to remove space:

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

And to print object if its something else:

do this:

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.
}

Hope this helps

Answered by Umair M on January 1, 2022

Add your own answers!

Related Questions

Detect if Class has an element inside of certain Class?

1  Asked on November 17, 2021 by ohval

 

Syntax error: missing ‘;’ before ‘*’ with Item class

1  Asked on November 17, 2021 by theandrewjeff

   

Run a query based on the values returned by another query

3  Asked on November 17, 2021 by kevin-d

 

simplfied observer pattern with std::shared_ptr/weak_ptr

1  Asked on November 17, 2021 by fatun

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP