Unity 控制摄像头的移动、缩放和设置移动范围

本文介绍了如何在Unity中实现摄像头根据鼠标点击或WASD键进行移动,并详细讲解了如何设置摄像头的移动范围,提升游戏场景的交互体验。
public class FollowMouseMove : MonoBehaviour
{
    
    private float FollowPosx,FollowPosy;
    private float moveAmount=5f;   //鼠标控制镜头的移动速度,镜头的移动速度应该跟摄像头的尺寸相关
    private float ScrollWheelSpeed = 5f; //滚轮控制镜头的缩放速度
    private float Posx_max = 10;   //控制镜头x的最大尺寸,设置摄像头可查看范围
    private float Posy_max = 10;    //控制镜头y的最大尺寸 
    private float ScrollWheel_max = 50;   //滚轮控制镜头的最大缩放
    private float ScrollWheel_min = 5;    //滚轮控制镜头的最小缩放

    // Update is called once per frame
    void Update()
    {
        float Camer_Size = Camera.main.orthographicSize;
        moveAmount = Camer_Size / 2;   //控制镜头的移动速度和摄像头尺寸的关系,使其越大移动的越快
        if (Input.mousePosition.y >= Screen.height * 0.9 | Input.GetKey(KeyCode.W) )//如果鼠标位置在顶部,就向上移动
        {
            FollowPosy += moveAmount * Time.deltaTime;
        }
        if (Input.mousePosition.y <= Screen.height * 0.1 | Input.GetKey(KeyCode.S) )//如果鼠标位置在底部,就向下移动
        {
            FollowPosy -= moveAmount * Time.deltaTime;
        }

        if (Input.mousePosition.x >= Screen.width * 0.9 | Input.GetKey(KeyCode.D) )//如果鼠标位置在右侧,就向右移动
        {
            FollowPosx += moveAmount * Time.deltaTime;
        }
        if(Input.mousePosition.x <= Screen.width * 0.1 | Input.GetKey(KeyCode.A) ) //如果鼠标位置在左侧,就向左移动
        {
            FollowPosx -= moveAmount * Time.deltaTime;
        }
     
        //设置摄像头的可查看范围
        FollowPosx = Mathf.Clamp(FollowPosx, -Posx_max, Posx_max);
        FollowPosy = Mathf.Clamp(FollowPosy, -Posy_max, Posy_max);
        //调用坐标变换
        Camera.main.transform.position = new Vector3(FollowPosx, FollowPosy, 0);


        if (Input.GetAxis("Mouse ScrollWheel") != 0)
        {
            //限制size缩放大小
            Camera.main.orthographicSize = Mathf.Clamp(Camera.main.orthographicSize, ScrollWheel_min, ScrollWheel_max);
            //滚轮改变缩放
            Camera.main.orthographicSize = Camera.main.orthographicSize - Input.GetAxis("Mouse ScrollWheel") * ScrollWheelSpeed;
        }  

      
    }



}

上述代码设置摄像头可根据鼠标或WASD移动摄像头.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值