1.实现思路:操作摄像头围绕物体中心点(远点),做球面旋转移动来实现旋转观察物体,控制球的半径大小来实现物体的缩放效果。
2.C#摄像头源码脚本

//放在摄像头上,实现旋转、缩放观察物体
using UnityEngine;public class BaseCam : MonoBehaviour
{public Vector3 mousePos1;                           //记录鼠标点下去瞬间的位置public Vector3 mousePos2;                           //记录鼠标任何时刻的位置public Quaternion start_qua;                        //角度使用四元数public Vector3 start_pos;                           //位置坐标// Use this for initializationvoid Start(){//记录相机开始的角度与位置start_qua = transform.rotation;start_pos = transform.position;}// Update is called once per framevoid Update(){//记录鼠标实时移动的点mousePos2 = Input.mousePosition;                }void OnGUI(){//鼠标左键if (Input.GetMouseButton(0)){mousePos1 = Input.mousePosition;            //记录鼠标点击瞬间的点Vector3 offset = mousePos1 - mousePos2;     //记录鼠标移动的距离//上下与左右 旋转分开,绝对值比较if (Mathf.Abs(offset.x) > Mathf.Abs(offset.y)){//以物体上方为旋转轴(Vector3.up == new Vector3(0, 1.0f, 0)),物体左右旋转角度与鼠标横向移动距离相关,变化速率2ftransform.RotateAround(new Vector3(0, 0, 0), Vector3.up, Time.deltaTime * offset.x * 2f);         }else{//以世界坐标右方为旋转轴(transform.right,是会变化的量),物体上下旋转角度与鼠标纵向移动距离相关,变化速率2ftransform.RotateAround(new Vector3(0, 0, 0), transform.right, -Time.deltaTime * offset.y * 2f);}//打印数据transform.right变量Debug.Log("pos: " + transform.right);}//鼠标中键,物体恢复原来的角度与位置if (Input.GetMouseButton(2)){transform.rotation = start_qua;transform.position = start_pos;}//鼠标中键滑动,物体缩放,摄像头前后移动距离范围在2f~5f,变化速率3fif (Input.GetAxis("Mouse ScrollWheel") > 0f && Vector3.Distance(transform.position, new Vector3(0, 0, 0)) > 2f){transform.Translate(Vector3.forward * Time.deltaTime * Input.GetAxis("Mouse ScrollWheel") * 5f);}if (Input.GetAxis("Mouse ScrollWheel") < 0f && Vector3.Distance(transform.position, new Vector3(0, 0, 0)) <5f){transform.Translate(Vector3.back * Time.deltaTime * (-Input.GetAxis("Mouse ScrollWheel")) * 5f);}}
}

Unity 3D鼠标操作实现旋转、缩放观察物体相关推荐

  1. 【Unity3D】3D 视图操作 ( 视图基本元素 | 导航器 | 栅格 | 天空盒 | 3D 视图操作 | 视图旋转 | 视图缩放 | 视图平移 | 导航器操作 | 恢复方向 | 顶、右、前视图 )

    文章目录 一.3D 视图基本元素 1.导航器 Gizmo 2.栅格 Grid 3.天空盒 Skybox 二.3D 视图操作 1.视图旋转 2.视图缩放 3.视图平移 三.导航器操作 1.恢复方向 2. ...

  2. Unity通过鼠标操作来控制场景视角(包括旋转、平移以及缩放)

    首先,本博客转自该博客 https://www.cnblogs.com/machine/p/unity.html ,在此记录只是为了防止博客删除或者书签找不到,所以重新在此记录一下. 1. 在摄像头& ...

  3. Unity摄像机控制插件移动旋转缩放聚焦自动居中

    目录 前言 一.主要特点 二.使用步骤 1.导入插件 2.拖入SR_Camera Prefab到Hierarchy场景中 3.设置场景中需要交互的物体和默认射线检测的地面层 4.限制摄像机的可移动范围 ...

  4. Unity 3D模型展示框架篇之自由观察(Cinemachine)

    本项目将整合之前Unity程序基础小框架专栏在Unity 3D模型展示项目基础上进行整合,并记录了集成过程中对原脚本的调整过程.增加了Asset Bundle+ILRuntime热更新技术流程. 在U ...

  5. Unity鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野

    如题目所示,本文实现这三个效果.所有代码都在pc端成功运行,移植到手机端改变相应的判断条件即可,核心算法没有问题. 一. 鼠标拖拽移动物体 效果演示 源代码 public class mousedra ...

  6. unity 3D模型展示旋转缩放

    目标: 在UI层上 自由观察3D 模型,实现鼠标控制模型的旋转,缩放&& 触摸屏手势控制模型的旋转缩放控制: 这里仅将控制代码挂载到相机上,通过对相机的控制来观察模型. 基本上为最小单 ...

  7. Unity 3D系列 摄像机围绕主角进行旋转、缩放

    一.开发环境 Unity版本: 2020.1.0f1 二.建立摄像机结构 1.结构如下图 2.将CameraZoomContainer的Position X坐标设置为12,如图 3.将CameraUp ...

  8. Unity 在zSpace上使用鼠标控制相机旋转和鼠标指引式放大缩小,在触屏上手势位置为中心放大缩小

    在zSpace上使用鼠标控制相机旋转和鼠标指引式放大缩小,在触屏上手势位置为中心放大缩小 鼠标和触屏的操作 下面展示一些 内联代码片. using System; using System.Colle ...

  9. Unity3D使用鼠标旋转缩放平移视角

    Unity使用鼠标旋转缩放平移视角 用代码在Game界面完美实现Scene界面的操作方法. 使用方法:把脚本挂在相机上,把跟踪的target拖到脚本上. 视角跟踪的是一个空物体,当然如果你是做RPG游 ...

最新文章

  1. 为什么“晚上9点钟洗澡的大学生成绩更好”?
  2. 3D视觉创新应用(三维重建)竞赛作品系列——多楼层室内环境下的三维几何重建
  3. Adam真的是最好的优化器吗?有人认为不过是神经网络进化的结果
  4. apxs php5,安装PHP5和PHP7
  5. 应用层组播、IP组播
  6. java程序员面试技术_java程序员面试应该具备的一些基本技能
  7. ROS: global_planner 整体解析
  8. 精通 Oracle+Python,第 4 部分:事务和大型对象
  9. java工作流 表设计_创建activiti工作流所需23张表
  10. 程序发布以后,如何修改安装URL
  11. 联合光伏回应“天价收购”质疑:并非每瓦10.24元
  12. websocket 聊天室 demo ( tornado + nginx + wss + 在线demo)
  13. matlab什么样的数表示0,matlab里a(i)~=0什么意思
  14. 区块链 之 以太坊的那些坑
  15. 网页|利用touch实现下拉刷新
  16. centos7 gitlab的私有化部署
  17. 关于如何获得虚拟机还是真机信息
  18. MES系统的选择需考虑什么?
  19. JZOJ 5947. 【NOIP2018模拟11.02】初音未来
  20. 项目中怎样做技术选型

热门文章

  1. 行高line-height,以及基线、顶线、中线和底线,还有内容区域、行内框和行框 by 豆豆猫的窝...
  2. 10 个用于收集硬件信息的 Linux 命令
  3. Docker - 相较于虚拟机的优势,以及为什么要使用docker
  4. Linux 安装 Intel 网卡驱动
  5. 如何在word中的方框中打勾
  6. 固态硬盘linux 性能,一种提高linux系统固态硬盘性能的方法与流程
  7. JSOI2008 小店购物
  8. mvc+xrecyclerview+SQL+自定义控件
  9. 西安交通大学计算机学院贾宇轩,CCF西安交通大学学生分会成立
  10. c语言杀我,ballball各位大佬救救我吧