0

私の最後の質問からの別のフォローアップ質問。

辞書を設定し、キー値と別のデバイスからの距離値を渡しています。プログラムで、距離の値に基づいていくつかのローカル変数を更新するようにしたいのですが、辞書のキー番号に関連付けられているものだけを更新します。

このコードはすべて次のようになります。

Dictionary<string, string> myDictonary = new Dictionary<string, string>();
string Value1 = "";
string Value2 = "";
string Value3 = "";
string Value4 = "";
string Value5 = "";
string Value6 = "";

void Start() 
{    
   myDictonary.Add("11111111", Value1);
   myDictonary.Add("22222222", Value2);
   myDictonary.Add("33333333", Value3);
   myDictonary.Add("44444444", Value4);
   myDictonary.Add("55555555", Value5);
   myDictonary.Add("66666666", Value6);
}

private void AppendString(string message) 
{   
   testMessage = message;
   string[] messages = message.Split(',');

   foreach(string w in messages)
   {   
      if(!message.StartsWith(" "))
         outputContent.text +=  w + "\n";
   }
   messageCount = "RSSI number " + messages[0];
   uuidString = "UUID number " + messages[1];

   if(myDictonary.ContainsKey(messages[1]))
   {
      myDictonary[messages[1]] = messageCount;
   }
}

同じアプリケーションで、すべての値を画面に表示して、値が正しく表示されるようにしています。プログラムのこの部分は次のようになります。

void OnGUI() 
{
   GUI.Label(new Rect(100, Screen.height/2 + 100, 150, 100), "value 1 " + Value1);
   GUI.Label(new Rect(100, Screen.height/2 + 120, 200, 100), "value 2 " + Value2);
   GUI.Label(new Rect(100, Screen.height/2 + 140, 250, 100), "value 3 " + Value3);
   GUI.Label(new Rect(100, Screen.height/2 + 160, 300, 100), "value 4 " + Value4);
   GUI.Label(new Rect(100, Screen.height/2 + 180, 350, 100), "value 5 " + Value5);
   GUI.Label(new Rect(100, Screen.height/2 + 200, 400, 100), "value 6 " + Value6);
}

前回の質問の修正を実装する前は、間違っていた可能性がありますが、文字列が更新され、画面に表示されていました。新しいコードを配置したため、何も起こりません。

私は次の方法を変更しようとしました:

if(myDictonary.ContainsKey(messages[1]))
{
   myDictonary[messages[1]] = messageCount;
}

そのため、配列内の最初のメッセージがチェックされ、2 つの間の可能なすべての組み合わせに渡されます。それでも同じ問題がシステムにあります。

誰でも何かを見ることができますか?

4

1 に答える 1