(Unity 5.3.5f1 の場合) 現在、プレーヤーの周りを水平に周回する 3D カメラに取り組んでいます。プレーヤーは RigidBody の回転する球です。プレイヤーは軸を水平方向に自由に回転させることができますが、入力がない場合は、回転を速度の方向にリセットしたいと考えています。
今私が知る必要があるのは、以前の回転からカメラをプレーヤーの周りに回転させることによって、プレーヤーの速度の方向の後ろにカメラを配置する方法だけです。
現在、プレーヤーの周りを周回するようにカメラを更新するには、カメラで次のスクリプトを使用します (コメント付き):
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public GameObject Player;
//I assume you would use this PlayerRB to find data regarding the movement or velocity of the player.
//public Rigidbody PlayerRB;
private float moveHorizontalCamera;
private Vector3 offset;
// Use this for initialization
void Start ()
{ //the offset of the camera to the player
offset = new Vector3(Player.transform.position.x - transform.position.x, transform.position.y - Player.transform.position.y, transform.position.z - Player.transform.position.z);
}
// Update is called once per frame
void Update ()
{
moveHorizontalCamera = Input.GetAxis("Joy X"); //"Joy X" is my right joystick moving left, none, or right resulting in -1, 0, or 1 respectively
//Copied this part from the web, so I half understand what it does.
offset = Quaternion.AngleAxis(moveHorizontalCamera, Vector3.up) * offset;
transform.position = Player.transform.position + offset;
transform.LookAt(Player.transform.position);
}
}
どんな助けでも素晴らしいでしょう!