Unity 相机围绕目标旋转、缩放功能实现

Unity 相机围绕目标旋转、缩放功能实现

//************************************************相机围绕物体旋转、相机缩放*********************************************************//
using UnityEngine;

public class RotateAndZoomControl : MonoBehaviour
{
    [Header("获得旋转目标")]
    [SerializeField]
    private Transform target;//获取旋转目标

    [Header("绑定相机")]
    [SerializeField]
    private Camera camera;//绑定相机

    public float maxField;//控制相机FieldOfView的最大角度
    public float minField;//控制相机FieldOfView的最小角度


    private void Start()
    {
        //初始化相机面向物体
        camera.transform.forward = (target.position - camera1.transform.position).normalized;
    }
   
    private void Update()
    {
        
       /* if (CameraSwitch._instance.isMainOrRight)
        {
            CameraRotate();
            CameraZoom();
        }
        */
          CameraRotate();
          CameraZoom();
    }

    /// <summary> 相机围绕目标旋转 </summary>
    private void CameraRotate()
    {
        var mouse_x = Input.GetAxis("Mouse X");//获取鼠标X轴移动
        var mouse_y = -Input.GetAxis("Mouse Y");//获取鼠标Y轴移动
        if (Input.GetKey(KeyCode.Mouse0))
        {
            transform.RotateAround(target.transform.position, Vector3.up, mouse_x * 5);
            transform.RotateAround(target.transform.position, transform.right, mouse_y * 5);
        }
    }
    
    /// <summary>
    /// 相机滚轮缩放(通过修改相机Field Of View的来进行缩放)
    /// </summary>
    private void CameraZoom()
    {
        if (Input.GetAxis("Mouse ScrollWheel") > 0 && camera1.fieldOfView > minField)
        {
            camera.fieldOfView -= Input.GetAxis("Mouse ScrollWheel") * 5f;
        }
        if (Input.GetAxis("Mouse ScrollWheel") < 0 && camera1.fieldOfView < maxField)
        {
            camera.fieldOfView -= Input.GetAxis("Mouse ScrollWheel") * 5f;
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值