我正在使用Unity(+ Vuforia),我在尝试打印一些我想要识别vuMark增强现实对象(这是一个Vuforia的东西)的变量时遇到了一些问题,但我似乎无法让它发挥作用。
我的代码如下,我希望将vuMarkID与“Table”进行比较。但是,在DebugLog中,我的第二个语句(Debug.Log("vuMarkCompareToTable...")
)返回1.即使第一个语句(Debug.Log("ID = {0}"...)
)返回“Table”。我已经尝试修剪vuMarkID字符串对象,并尝试直接转换它,如下所示。
另一个奇怪的事情是,在调试日志中的“Table”之后,对于第一个语句,将不打印任何内容。我尝试使用类似vuMarkID+"END"
之类的东西进行连接,语句只是在“Table”处切断。我甚至尝试使用"ID = {0}{0}"
打印,只打印第一个“表”。即使vuMarkID对象发生更改(例如,更改为Stool),它仍然不会在初始vuMarkID对象之后打印任何内容。
如何让Debug.Log识别“Table”之后的文本,并且当参数(看似)相同时,CompareTo函数返回0?
编辑:我也试过了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 :(得分: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.
}
希望这有帮助