解決しました。
ozwk様のご回答により解決しました。ありがとうございます。
ベストアンサーとして登録する前にどのように解決したのかをご報告いたします。
C#
1//y=-1.85のとき、スペースキー押下で変数bが+1される 2if(pos.y == -1.85){ 3 if(Input.GetKeyDown("space")){ 4 b += 1; 5 }
のところを、
C#
1//y=-1.85のとき、スペースキー押下で変数bが+1される 2if(-1.81f > pos.y && pos.y > -2.1f){ 3 if(Input.GetKeyDown("space")){ 4 b += 1; 5 }
と、「y座標が一定範囲内にあるとき、」としたところ、無事解決しました。
お早い回答、本当にありがとうございます。
以下当初の質問文
・オブジェクトは、wキー押下でy座標が+0.7、sキー押下で-0.7します。
・オブジェクトの最初のy座標は-1.85です。
・「オブジェクトのy座標が-1.85にあるとき」、「スペースキー押下で変数bを+1」します。
というコードを書きたいです。
以下に示すコードを書いたのですが、その結果は
・エラーは出ませんでした。
・wキーもsキーも押していない場合のみ、スペースキーで変数bが+1出来ました。
・しかし、一度sキーを押下し、次にwキーを押すと、スペースキーで変数bが+1されません。
どうすればよいでしょうか?
※私は以下のコードを書きました。
C#
1public int b; 2 3void Start(){ 4} 5 6void Update(){ 7//オブジェクトの座標 8Transform myTransform = this.transform; 9Vector3 pos = myTransform.position; 10 11//wキー押下でy座標 +0.7 12if(Input.GetKeyDown("w")){ 13 pos.y += 0.7f; 14} 15//sキー押下でy座標 -0.7 16if(Input.GetKeyDown("s")){ 17 pos.y -= 0.7f; 18} 19 20//y=-1.85のとき、スペースキー押下で変数bが+1される 21if(pos.y == -1.85){ 22 if(Input.GetKeyDown("space")){ 23 b += 1; 24 } 25} 26 27myTransform.position = pos; 28 29} 30
※変数bは、別のスクリプトでUnity側で表示されるようになっています。
※Unity側で、オブジェクトのy座標が-1.85であることは確認しています。例えば「-1.8499999」のようにはなっていません。
回答1件
あなたの回答
tips
プレビュー