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);
    }
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值