本文实例为大家分享了Unity3D实现相机跟随控制的具体代码,供大家参考,具体内容如下
跟随算法
要实现3D摄像机的控制第一步就是先实现摄像机跟随物体移动。
要想让相机跟随物体移动,就要明白在一定角度下相机与物体的位置关系。
首先设置相机与物体之间的距离distance,相机与xz平面的角度为roll
所以根据三角关系可以求得映射在xz平面的距离d为distancecos(rool),相机高度为distancesin(roll)。
如下图
现在就可以确定相机的高度了即y轴的坐标相机的y轴坐标应该为 Camera.Main.y=物体.y+height
在xz平面中,设相机与物体的距离为d(就是上面说的那个d,distance映射在xz平面的长度),相机的旋转角度为rot。根据下图可以看到,相机与物体的连线与x轴的角度为rot-180.根据三角函数,既可以得出x轴的位移为d*sin(rot) ,z轴的位移为d*cos(rot)。
所以说开始的时候指定distance和rot和roll就可以实现跟随了。实现跟随的代码如下
public class CameraFollow : MonoBehaviour
{
//距离
public float distance = 15;
//横向角度
public float rot = 0;
//纵向角度 30d度
public float roll = 30f * Mathf.PI * 2 / 360;
//目标物体
public GameObject target;
private void Start()
{
target = GameObject.Find("Black Track");
}
private void LateUpdate()
{
if (target == null)
return;
if (Camera.main =