2017-10-11 6 views
1

これは私の最初の正当な問題であり、私はコーディングに苦しんでおり、答えを見つける場所がわかりません。transform.positionベクトルは場面外でのみ変化する

時間がたつにつれてX次元で移動する必要があるオブジェクトがあります。ここに私が持っている次のコードがあります。

Vector3 temp = transform.position; 
temp.x += forwardSpeed * Time.deltaTime; 
transform.position = temp; 

私がデバッグすると、temp.xが変更されていないことがわかります。しかし、カメラの領域からオブジェクトを移動すると、Xが変化し始めます。これで十分でない場合は、私に知らせてください。もっとコードを提示してください。ご協力いただきありがとうございます。

+0

'temp.x'を修正しようとした変数を見ましたか?また、例が完全であると仮定すると、 'transform.position.x + = forwardSpeed * Time.deltaTime;'のコピーは必要ありません.-これは、ワールドx軸に沿ってオブジェクトを動かすことだけが気になる場合にのみ有効です。 – George

+0

私はこのエラーを取得します。 '値の型の戻り値を' UnityEngine.Transform.position 'に変更できません。値を一時変数に格納することを検討してください。だから、私は値を変更するためにtempを使います。 –

答えて

0

Vector3 temp = transform.positionを設定すると、transform.positionのコピーが返されます。あなたの場合は
、Xの位置を変更する適切な方法は、次のようにする必要があります:

Vector3.rightが shorthand of writing Vector3(1, 0, 0)ある
transform.position += (Vector3.right * forwardSpeed * Time.deltaTime); 


このようにして、ステートメントがそのコピーではなくtransform.positionベクトルを更新していることを確認します。

関連する問題