0

Unity ゲーム エンジンを使用していますが、コードの一部で問題が発生しました。

function NoteDecision(n :String) {
    Debug.Log("-"+n+"-"); // This is returning -G- which means its just "G"
    Debug.Log(n=="G");  // This is returning false, although n is G
    switch (n){
        case "G":
            Instantiate(GreenNote, SGreenNote.position, SGreenNote.rotation); break;
        case "R":
            Instantiate(RedNote, SRedNote.position, SRedNote.rotation); break;
        case "Y":
            Instantiate(YellowNote, SYellowNote.position, SYellowNote.rotation); break;
        case "B":
            Instantiate(BlueNote, SBlueNote.position, SBlueNote.rotation); break;
        case "O":
            Instantiate(OrangeNote, SOrangeNote.position, SOrangeNote.rotation); break;
        default : Debug.Log("There is a problem here...");
    }
}

したがって、ここのコードは変更されていませんが、機能しなくなってから何が変更されたかはわかります。

変数 n は、String.Split() を使用して分割した文字列の後半を保持します。以前は、コンマ前に後半を保持していました。

Y,023.19592 // this is what it used to look like
023.19592,Y // this is what it looks like now

とにかく、ここにコードの他のスニペットがあります

note = lines[position].Split(","[0]); // this is where it gets split.
NoteDecision (note[1]);  // calling the function above.

それで、誰が問題が何であるか、または解決策を知っていますか?

4

1 に答える 1

0

以下を使用する必要があります。

Debug.Log(n.Equals("G")); // this will return true
于 2012-09-04T06:29:42.057 に答える