while (position < 数字) の数字部分に0以下を代入するとスクリプトが動作しなくなる
x軸上の負の位置にあるオブジェクトをx軸上の正の位置に動かすため、以下のスクリプトをアタッチしました。
public class NewBehaviourScript : MonoBehaviour
{private Vector3 position;
void Update() { while (position.x < 1f) { position=transform.position; transform.Translate(0.5f, 0,0); } }
}
この場合オブジェクトは正の位置に動いてくれたのですが、
while (position.x < 1f)
を
while (position.x < 0f)
にしたところ、オブジェクトは動かなくなってしまいました
オブジェクトはx軸上の0未満にあるのだからこの条件を満たしていると思うのですが、なぜなのでしょうか
Unity の話なら Unity のタグを付けてください。
情報が足らなすぎ。今提供されている情報で言えるのは、
> while (position.x < 0f)にしたところ、オブジェクトは動かなくなってしまいました
でループを回す条件が false になってるからではないの?・・・程度ですが、あなたはもっと手取り足取りで一から十まで教えて欲しいのではないのですか?
whileの中はtrueの間、回り続けます。
for文でいうところの真ん中の文の式がwhileの式だと思っておいて下さい。
>オブジェクトはx軸上の0未満
の時のposition.xはいくつなのですか。
色々と言葉足らずで申し訳ないです
unityの2dです
オブジェクトの位置はx-5 y0です
このオブジェクトに
while (position.x < 1f)
の状態の上記のスクリプトをアタッチすると、オブジェクトのx座標は1.5まで移動しました
しかし
while (position.x < 0f)
と書き換えると、オブジェクトのx座標は-5から一歩も動かなくなってしまいます
> position.xはいくつなのですか
と問われているのだが,何故答えないのか.
「オブジェクトの位置」とかいう値の話ではなく,実際の動作中の position.x の値はどうなっているのか?
回答1件
あなたの回答
tips
プレビュー