辞書を設定し、キー値と別のデバイスからの距離値を渡しています。プログラムで、距離の値に基づいていくつかのローカル変数を更新するようにしたいのですが、辞書のキー番号に関連付けられているものだけを更新します。
このコードはすべて次のようになります。
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 つの間の可能なすべての組み合わせに渡されます。それでも同じ問題がシステムにあります。
誰でも何かを見ることができますか?