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

思路整理:

缩放前:

缩放后:

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

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

计算A1_world 和 A_world 的偏移量

移动摄像机

代码:

cs 复制代码
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);
    }
相关推荐
蓝裕安1 小时前
伪工厂模式制造敌人
开发语言·unity·游戏引擎
谢泽浩5 小时前
Unity 给模型贴上照片
unity·游戏引擎
z2014z5 小时前
Unity Resource System 优化笔记
unity·游戏引擎
王维志6 小时前
Unity 高亮插件HighlightPlus介绍
unity·游戏引擎
zaizai10077 小时前
我的demo保卫萝卜中的技术要点
unity
菌菌巧乐兹8 小时前
Unity 百度AI实现无绿幕拍照抠像功能(详解版)
人工智能·百度·unity
孑么1 天前
C# 委托与事件 观察者模式
开发语言·unity·c#·游戏引擎·游戏程序
wangduqiang7471 天前
unity的学习
学习·unity·游戏引擎
@Sunset...1 天前
Unity程序基础框架
unity·游戏引擎
咩咩觉主1 天前
Unity实战案例全解析 :PVZ 植物脚本分析
unity·游戏引擎