unity摄像机跟随

using UnityEngine;
public class Test : MonoBehaviour
{
    public float distanceAway = 5;  //距离
    public float distanceHigh = 2;    //相对高度
    public float moveSpeed = 3;      //相机移动速度
    public Transform Target;
    void Start() { }
    void LateUpdate()
    {
        //Follow1();
        Follow2();
    }

//1、始终跟随在玩家后方
  void Follow1()
    {
        Vector3 targetPosition = Target.position + Vector3.up * distanceHigh - Target.forward * distanceAway;
        transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * moveSpeed);
        transform.LookAt(Target);
    }

//2、不根据玩家朝向改变,可以改变Angle选择观察角度

  public float rollAngle = 30f * Mathf.PI * 2 / 360;   //摄像机朝向与XZ平面角度
    public float Angle = 0;   //摄像机朝向与YZ平面角度
    void Follow2()
    {
        Vector3 cameraPos;

        float dis = distanceAway * Mathf.Cos(rollAngle);
        float height = distanceAway * Mathf.Sin(rollAngle);

        cameraPos.x = Target.position.x + dis * Mathf.Cos(Angle);
        cameraPos.z = Target.position.z + dis * Mathf.Sin(Angle);
        cameraPos.y = Target.position.y + height;
        transform.position = Vector3.Lerp(transform.position, cameraPos, Time.fixedDeltaTime * moveSpeed);

        transform.LookAt(Target);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值