unity 启动相机_Unity3D实现相机跟随控制

本文详细介绍了在Unity3D中如何实现相机跟随物体移动的算法,包括相机与物体的距离、角度计算,以及通过鼠标控制的横向、纵向旋转和滚轮调整距离的方法。提供了完整的CameraFollow类代码示例。
摘要由CSDN通过智能技术生成

本文实例为大家分享了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 == null)

return;

//目标的坐标

Vector3 targetPos = target.transform.position;</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值