前提・実現したいこと
カメラの初期位置をプレイヤーの後ろに配置したい。
オブジェクトの初期向きをrotation y=90にしても、カメラの初期位置が後ろにあるようにしたいです。
オブジェクトの向きをいじる前は正常でしたが、上記の設定にした途端プレイヤーが右を向いた状態でゲームが始まってしまいました。
カメラの回転処理は問題ありません。
該当のソースコード
C#
1public class PlayerFollowCamera : MonoBehaviour 2{ 3 [SerializeField] private Transform player; // 注視対象プレイヤー 4 5 [SerializeField] private float distance = 15.0f; // 注視対象プレイヤーからカメラを離す距離 6 [SerializeField] private Quaternion vRotation; // カメラの垂直回転(見下ろし回転) 7 [SerializeField] public Quaternion hRotation; // カメラの水平回転 8 9 [SerializeField] private float turnSpeed = 10.0f; // 回転速度 10 [SerializeField] private float oppositeturnSpeed = -10.0f; //逆回転速度 11 12 void Start() 13 { 14 // 回転の初期化 15 vRotation = Quaternion.Euler(30, 0, 0); // 垂直回転(X軸を軸とする回転)は、30度見下ろす回転 16 hRotation = Quaternion.identity; // 水平回転(Y軸を軸とする回転)は、無回転 17 transform.rotation = hRotation * vRotation; // 最終的なカメラの回転は、垂直回転してから水平回転する合成回転 18 19 // 位置の初期化 20 // player位置から距離distanceだけ手前に引いた位置を設定します 21 transform.position = player.position - transform.rotation * Vector3.forward * distance; 22 } 23 24 void LateUpdate() 25 { 26 // カメラの位置(transform.position)の更新 27 // player位置から距離distanceだけ手前に引いた位置を設定します 28 transform.position = player.position - transform.rotation * Vector3.forward * distance; 29 30 // 水平回転の更新 31 if (Input.GetMouseButton(0)) 32 hRotation *= Quaternion.Euler(0, Input.GetAxis("Mouse X") * turnSpeed, 0); 33 34 // 垂直回転の更新 35 if (Input.GetMouseButton(0)) 36 vRotation *= Quaternion.Euler(Input.GetAxis("Mouse Y") * oppositeturnSpeed, 0, 0); 37 38 39 // カメラの回転(transform.rotation)の更新 40 // 方法1 : 垂直回転してから水平回転する合成回転とします 41 transform.rotation = hRotation * vRotation; 42 43 // カメラの位置(transform.position)の更新 44 // player位置から距離distanceだけ手前に引いた位置を設定します 45 transform.position = player.position - transform.rotation * Vector3.forward * distance; 46 } 47}
試したこと
算出されるtransform.positionをどうにか弄れればいいのですが、Vector3で取得してしまっているせいで詰んでいます。
このスクリプト自体が個人のサイト様からコピーしたものなので、自分で完全に構造を把握できていないのも原因です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/09 09:44
2019/11/09 10:25
2019/11/09 10:49
2019/11/10 04:00
2019/11/10 15:40
2019/11/11 01:11