您当前的位置: 首页 > 

unity工具人

暂无认证

  • 4浏览

    0关注

    205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

拖动鼠标旋转相机

unity工具人 发布时间:2021-05-29 07:45:36 ,浏览量:4

一个相机旋转脚本,简洁 好用

using UnityEngine;

/// 
/// 主相机脚本 —— 挂载到主相机上,并将 旋转中心节点拖到 pivot 
/// 
public class ChinarCamera : MonoBehaviour
{
    public  Transform pivot;//旋转中心
    public  Vector3   pivotOffset = Vector3.zero;
    public  Transform target;//旋转目标(相机)
    //距离
    public  float     distance       = 10.0f;
    public  float     minDistance    = 2f;
    public  float     maxDistance    = 15f;
    
    public  float     zoomSpeed      = 1f;
    //速度
    public  float     xSpeed         = 250.0f;
    public  float     ySpeed         = 120.0f;
    //仅绕中心y轴旋转
    public  bool      allowYTilt     = true;
    //相机相对角度限制
    public  float     yMinLimit      = -90f;
    public  float     yMaxLimit      = 90f;
    
    private float     x              = 0.0f;
    private float     y              = 0.0f;
    private float     targetX        = 0f;
    private float     targetY        = 0f;
    private float     targetDistance = 0f;
    private float     xVelocity      = 1f;
    private float     yVelocity      = 1f;
    private float     zoomVelocity   = 1f;


    private void Start()
    {
        var angles     = transform.eulerAngles;
        targetX        = x = angles.x;
        targetY        = y = ClampAngle(angles.y, yMinLimit, yMaxLimit);
        targetDistance = distance;
    }


    private void LateUpdate()
    {
        if (!pivot) return;
        var scroll = Input.GetAxis("Mouse ScrollWheel");

        if (scroll > 0.0f) targetDistance -= zoomSpeed;
        else if (scroll             
关注
打赏
1656671177
查看更多评论
0.0455s