0

我创建了一个像这样的字典:

public Dictionary<string, string> myValues = new Dictionary<string, string>();

然后在我的开始方法中,我正在填写我的字典,如下所示:

void Start()
{
    myValues.Add("device one", "11111111111111");
}

我想要做的是检查我在字典中创建的值,在上面的示例中,它将是1111111111111, 与远程读取的字符串值。我正在做的检查是这样的:

void Update () 
{
    // Spawn a model based on the signal the ipad has recievied.
    if( myValues["device one"] == outputContent.text)
    {
        Instantiate(model1, new Vector3(-2.5f, 3.0f,0), Quaternion.identity);
    }       
}

该消息是从一个包装类中解析出来的,该类从本机 ipad 中获取信息并将其直接传递给 unity。获取消息的方法是这样的:

private void AppendString(string message) 
{
    outputContent.text += "\n" + message;
}

现在,问题是,传递的消息有效。当我运行我的代码时,屏幕上会填满我想要的信息。但是当我尝试检查我存储的值与发送的值时,什么也没有发生。

我如何获得我的初始硬编码值是首先从 AppendString 方法中读取它们。我已经仔细检查了它们,以确保我得到了正确的信息。

有人可以告诉我,如果我将字典中保存的值与正在读取的值进行比较,是否正确?

4

2 回答 2

1

有几个“可疑”的地方。

在这里,您添加\n,您确定它包含在字典的值中吗?

outputContent.text += "\n" + message;

另外,请确保正确比较字符串。它甚至可能是一个大小写问题,这让我很痛苦。例如尝试:

if(String.Equals(myValues["device one"], outputContent.text, StringComparison.OrdinalIgnoreCase)
于 2013-11-01T16:27:24.823 回答
0

更好地替换以下行

 if( myValues["device one"] == outputContent.text)

和:

 if( myValues["device one"].Equals(outputContent.text))
于 2013-11-01T16:45:38.297 回答