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 のものから情報を取得し、ユニティに直接渡すラッパー クラスから解析されます。メッセージを取得する方法は次のとおりです。

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 に答える