InvalidCastException:无法使用Unity(C#)从源类型转换为目标类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InvalidCastException:无法使用Unity(C#)从源类型转换为目标类型相关的知识,希望对你有一定的参考价值。
我试图将对象转换为int。我已经尝试过Convert.ToInt32(对象),但它不起作用。我不明白我错过了什么。我很高兴,有人可以提供帮助。下面是代码:
void Update()
{
int markNr = 0;
if (this.m_TuioManager.IsConnected
&& this.m_TuioManager.IsMarkerAlive(this.MarkerID) && isTrue)
{
//UserDetected();
TUIO.TuioObject marker = this.m_TuioManager.GetMarker(this.MarkerID);
//int object1 = Int32.TryParse(marker, out markNr);
Debug.Log("The object:" + marker.ToString());
int object1 = Convert.ToInt32(marker);
try
{
if (markNr == object1)
{
Debug.Log("It Worksssss!!!");
presentationCube.newGame();
}
}
catch (Exception)
{
Debug.Log("Failed restarting the game");
}
只有表示整数的对象才能转换为整数。 TuioObject不是整数的表示,但它可以包含一个或多个可以转换为整数的整数或值。
我建议你做的是向TuioObject添加一个函数,它返回你需要的整数。例如,如果要比较的数字是id:
public int GetId ()
{
return id;
}
然后更换
int object1 = Convert.ToInt32(marker);
同
int id = marker.GetId();
如果TuioObject位于您无法编辑的外部框架中,则可以使用新函数创建TuioObject的子类。
以上是关于InvalidCastException:无法使用Unity(C#)从源类型转换为目标类型的主要内容,如果未能解决你的问题,请参考以下文章
InvalidCastException:无法将“System.Collections.Generic.List”类型的对象转换为 System.Collections.Generic.IEnumer
InvalidCastException:无法将“System.DBNull”类型的对象转换为“System.Nullable`1[System.Int32]”[重复]
防止在工作目录中加载 dll,InvalidCastException Type A 无法转换为 Type B
System.InvalidCastException: 无法将类型为“LabelManager2.ApplicationClass”的 COM对象强制转换为