このようなコードでは、最初の4つのループがうまく動作します。下の2つはそうではありません。いくつかのifステートメント - 動作しないもの - Unity C#
if (Input.GetKeyDown(KeyCode.RightArrow)){
if(selected.x<5){
selected=selected + new Vector3 (1,0,0);
}
}
if (Input.GetKeyDown(KeyCode.LeftArrow)){
if(selected.x>-5){
selected=selected + new Vector3 (-1,0,0);
}
}
if (Input.GetKeyDown(KeyCode.UpArrow)){
if(selected.z<5){
selected=selected + new Vector3 (0,0,1);
}
}
if (Input.GetKeyDown(KeyCode.DownArrow)){
if(selected.z>-5){
selected=selected + new Vector3 (0,0,-1);
}
if (Input.GetKeyDown(KeyCode.Escape)){
print("escape");
currentState=BattleStates.NONE;
gameManager.GetComponent<gameManager>().PlayerChoice();
gameManager.GetComponent<gameManager>().ShowMenu();
}
if (Input.GetKeyDown(KeyCode.Space)){
print("pressed");
destination=selected;
currentState=BattleStates.NONE;
gameManager.GetComponent<gameManager>().Resolution();
}
最後の2つを上に移動すると、上に移動すると動作しますが、下に移動した4つは移動しません。私はこれについての説明を見ることができません。 誰でも?
あなたは '(Input.GetKeyDown(KeyCodeにある場合に、次のいずれかを開始する前に、あなたは、' '(Input.GetKeyDown(KeyCode.DownArrow))場合には閉じないでください。エスケープ)) '。適切な書式設定を使用していれば、すぐにこの問題に気づくでしょう。 IDEはコードを適切に整列させて使用するオプションを既に提供しているはずです。 –
ループはなく、角括弧は完全に一致しません。 – dlatikay