前提・実現したいこと
こちらの質問記事を拝見し、理解したいと思い、再現などしてみたのですが、
コード的に分からないこと等多々あり、質問させていただきたいです。
分からないコードが多々あったので、今回は前半部分だけの質問です。
試したこと
・質問記事のコードをコピーして、実際にゲーム実行して動きを確認してみました。
・とりあえず、コードを削って、下記でどういったものになるか試してみました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class SpaceShip : MonoBehaviour 6{ 7 // speedを制御する 8 public float speed = 10; 9 public float moveForceMultiplier; 10 11 // 水平移動時に機首を左右に向けるトルク 12 public float yawTorqueMagnitude = 30.0f; 13 14 // 垂直移動時に機首を上下に向けるトルク 15 public float pitchTorqueMagnitude = 60.0f; 16 17 // 水平移動時に機体を左右に傾けるトルク 18 public float rollTorqueMagnitude = 30.0f; 19 20 // バネのように姿勢を元に戻すトルク 21 public float restoringTorqueMagnitude = 100.0f; 22 23 private Vector3 Player_pos; 24 private new Rigidbody rigidbody; 25 26 void Awake() 27 { 28 rigidbody = GetComponent<Rigidbody>(); 29 30 // バネ復元力でゆらゆら揺れ続けるのを防ぐため、angularDragを大きめにしておく 31 rigidbody.angularDrag = 20.0f; 32 } 33 34 void FixedUpdate() 35 { 36 float x = Input.GetAxis("Horizontal"); 37 float y = Input.GetAxis("Vertical"); 38 39 // xとyにspeedを掛ける 40 rigidbody.AddForce(x * speed, y * speed, 0); 41 42 Vector3 moveVector = Vector3.zero; 43 44 rigidbody.AddForce(moveForceMultiplier * (moveVector - rigidbody.velocity)); 45 } 46}
上記コードを機体のオブジェクトにアタッチし、カメラの子オブジェクトに機体オブジェクトをセットしてグループ化しました。
カメラの位置は機体の後方に配置し、機体に向いています。
・質問1。
グループ化すると、機体が動くと、カメラもそれに追従するような動きになる、
つまり、カメラは常に一定の機体の後方だけを移すような挙動になるのかと思ったのですが、
カメラは固定されているような状態でした。
グループ化すると、常にグループ化したオブジェクトは一体となって動くと思っていたのですが、
一体化して動かないのは何故なのでしょうか?
・質問2。
下記コードがどういった処理をしているのかわかりません。
rigidbody.AddForce(moveForceMultiplier * (moveVector - rigidbody.velocity));
上記コードをコメントアウトするのとしないのとでゲームを実行してみたいのですが、その違いもわかりませんでした。
moveVectorはVector3.zeroを入れているみたいですが、用途によっては、他のベクトルを入れることもあるのでしょうか?
(moveVector - rigidbody.velocity)が何を意味しているのか、
また、書いている途中で気づいたのですが、moveForceMultiplierは宣言だけされていて、0みたいですね。
結果的に、rigidbody.AddForce(0);が実行されているように思えるのですが、このコードは不要ですか?
・質問3。
カメラや機体のトランスフォームのRotationを(0,0,0)に設定していて、カメラも機体もワールドのZ軸方向を向くようにしているのですが、
ゲームを実行して、しばらく機体を左右上下に動かす操作をすると、
だんだん機体がカメラに近づいて(機体が後方に動いてくる)のは何故でしょうか?
Z軸方向への移動処理は行っていないはずなのですが。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/07/20 05:49
2019/07/20 10:36
退会済みユーザー
2019/07/20 10:55