当前位置: 首页 > article >正文

Unity3d 以鼠标位置点为中心缩放视角(正交模式下)

思路整理:

缩放前:

缩放后:

记录缩放前鼠标的屏幕坐标 A,计算鼠标位置对应的世界坐标 A_world

缩放完成后,根据当前屏幕下A所对应的世界坐标A1_world

计算A1_world 和 A_world 的偏移量

移动摄像机

代码:

private void ScaleBaseMousePos()
    {
        //缩放前鼠标位置对应的世界坐标 A点
        Vector3 aimPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane));

        //缩放前屏幕位置存储
        Vector2 mousePos = Input.mousePosition;

        //缩放
        nowOriSize = Camera.main.orthographicSize - wheel * 50.0f;

        Camera.main.orthographicSize = Mathf.Clamp(nowOriSize, minOriSize, maxOriSize);

        //缩放后A点应该对应的屏幕坐标 A1点
        Vector3 newMousePos = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, Camera.main.nearClipPlane));

        transform.position += (aimPos - newMousePos);
    }


http://www.kler.cn/a/309905.html

相关文章:

  • 十九:Spring Boot 依赖(4)-- spring-boot-starter-security依赖详解
  • HTMLCSS: 实现可爱的冰墩墩
  • 使用Git工具在GitHub的仓库中上传文件夹(超详细)
  • 组件间通信(组件间传递数据)
  • 020_Servlet_Mysql学生选课系统(新版)_lwplus87
  • ubuntu 22.04 如何调整进程启动后能打开的文件数限制
  • 待办: 杂七杂八——大杂烩.....懒得整理了,我自己凑合看
  • 新手学习Python第七天-新手笔记
  • 基于STM32C8T6的CubeMX:HAL库点亮LED
  • Datawhale X 李宏毅苹果书 AI夏令营 《深度学习详解》第十九章 ChatGPT
  • Python 入门教程(3)基础知识 | 3.6、标准输入与输出
  • c++----模板(进阶)
  • 什么是VHDX文件?
  • 国科云域名解析课堂:一个域名可以解析到多个IP地址吗?
  • 高校能耗管控方案如何做到节能减排
  • 【Python123题库】#绘制温度曲线 #XRD谱图绘制 #态密度曲线绘制
  • 3个WebSocket的.Net开源项目
  • 基于vue框架的宠物店管理系统的设计与实现4czn0(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • StackTrace在.Net中获取当前线程的堆栈跟踪信息
  • 【MySQL】MySQL连接池原理与简易网站数据流动是如何进行
  • mysql笔记7(单表查询)
  • 计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Github 2024-09-12 Go开源项目日报Top10
  • 智能车镜头组入门(二)电路硬件的设计
  • mysql的高级查询:函数的运用(日期/数字/字符/聚合)及分组查询
  • 清理C盘缓存的垃圾,专业清理C盘缓存垃圾的步骤与策略