1.移动场景中的物体

using UnityEngine;
using System.Collections;public class DragAndDrog : MonoBehaviour {private GameObject target;private bool isMouseDrag;private Vector3 screenPosition;private Vector3 offset;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {GameObjectDragAndDrog();}//任意拖拽private GameObject ReturnGameObjectDrag(out RaycastHit hit){target = null;Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray.origin, ray.direction * 10, out hit)){target = hit.collider.gameObject;}return target;}//拖拽Updataprivate void GameObjectDragAndDrog(){if (Input.GetMouseButtonDown (0)){RaycastHit hitInfo;target = ReturnGameObjectDrag(out hitInfo);if (target != null){isMouseDrag = true;
//将目标对象的世界坐标转化为屏幕坐标screenPosition = Camera.main.WorldToScreenPoint(target.transform.position);
//得到鼠标的世界坐标与目标世界坐标的偏移量offset = target.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z));}      }if (Input.GetMouseButtonUp(0)){isMouseDrag = false;}if (isMouseDrag){Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
//鼠标的世界坐标加上偏移量,即为目标对象的终点Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenSpace) + offset;
//target.transform.localPosition = new Vector3(currentPosition.x, currentPosition.y, currentPosition.z);}}}本脚本可以加载任意一个对象GameObject,场景中所有带Collider的对象,当鼠标点击拖动时候都可以沿x和z轴拖动。之前,都是要拖动那个GameObject就会写一个脚本挂在上面,今天实现了不用每一个要拖动的GameObject都挂载脚本,也不用将移动的GameObject赋给某个变量。

2。鼠标滚轮控制视野

void Update () {//鼠标滚轮的效果//Camera.main.fieldOfView 摄像机的视野//Camera.main.orthographicSize 摄像机的正交投影//Zoom outif (Input.GetAxis("Mouse ScrollWheel") < 0){if (Camera.main.fieldOfView <= 100)Camera.main.fieldOfView += 2;if (Camera.main.orthographicSize <= 20)Camera.main.orthographicSize += 0.5F;}//Zoom inif (Input.GetAxis("Mouse ScrollWheel") > 0){if (Camera.main.fieldOfView > 2)Camera.main.fieldOfView -= 2;if (Camera.main.orthographicSize >= 1)Camera.main.orthographicSize -= 0.5F;}}

实现鼠标控制场景的视野及移动相关推荐

  1. Three.js用鼠标控制场景移动的代码

    Three.js中的场景移动主要是通过摄像机移动来实现的. 下面是自己写的代码,主要是鼠标滚轮实现前进与后退和四个方向的移动. windowAddMouseWheel(); addTouchListe ...

  2. Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能(含源码工程)

    相机控制 前言 效果 漫游效果 围绕节点效果 实现过程 功能范围 搭建场景 编码实现 变量设置 自由漫游 观察节点 功能使用 项目工程 瑕疵 前言 在很多情况下我们都会用到如题的功能,在一般情况下我们 ...

  3. 计算机视觉课程第六讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(上集):OpenCV4鼠标控制图像和视频任意位置放大和缩小

    计算机视觉课程第六讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(上集):OpenCV4鼠标控制图像和视频任意位置放大和缩小 本专栏将会带大家学习 <计算机视觉与图 ...

  4. Python之OpenGL笔记(17):键盘鼠标控制摄像机移动旋转

    一.目的 1.键盘控制摄像机自由移动: 2.鼠标控制摄像机旋转: 3.鼠标滚轮放大缩小视野. 二.程序运行结果 三.自由移动 view = lookAt(cameraPos, cameraPos + ...

  5. ogre3D学习基础10 -- 键盘控制与鼠标控制(直接控制)

    要实现键盘,鼠标对场景的控制,首先要帧监听,就是在每一帧的渲染前后对它进行操作.这里的操作没有用到缓冲区,只是简单的直接获取. 1.这些步骤和前面的一样,直接上代码,操作还是在createScene函 ...

  6. 鼠标控制两台台式机_台式机和控制台上的真棒实时GI

    鼠标控制两台台式机 We've teamed up with Alex Lovett again and built The Courtyard, a demo that puts the Preco ...

  7. VR项目添加键盘鼠标控制

    VR项目添加键盘鼠标控制 使用VR模版创建的项目,程序运行后,只能使用VR头盔进行交互场景,不便于调试工作,为此,在场景中添加键盘.鼠标控制功能. 1 .键盘控制添加: 键盘控制主要为ASDW 键控制 ...

  8. Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理

    Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 目录 Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 ...

  9. css3魔方鼠标怎么用,CSS3之3D魔方鼠标控制酷炫效果

    前面文章有制作水晶魔方,这次我们升级一下它的功能,通过鼠标控制魔方旋转. 大家先看效果 这酷炫的效果,你怎么看? 这次效果,咱们需要用JS实现.主要是监听鼠标事件,计算鼠标滑动距离,改变魔方的rota ...

最新文章

  1. 【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )
  2. android 用dx.bat 转换class 为dex
  3. 30分钟正则表达式入门
  4. 《那些年啊,那些事——一个程序员的奋斗史》——35
  5. 分享几个接口自动化的实战练手项目
  6. 前端页面-不可编辑控制
  7. 【指针】C++中指针的使用艺术[转]
  8. python中文聊天机器人_[源码和文档分享]基于python的中文聊天机器人
  9. opencv4 图像特征匹配_【从零学习OpenCV 4】图像模板匹配
  10. Nginx集群之基于Redis的WebApi身份验证
  11. 从入门到精通,给Java学习者的几点建议
  12. win8.1安装马上6,连不上
  13. 一个很好用的angularjs日期插件
  14. 成本360元的迷你物联网服务器有多香?
  15. python因子分析法详细步骤_Python——因子分析
  16. 计算机教室的英语单词怎么写的,小学的英语单词怎么写
  17. 【HUSTOJ】1047: 字符图形3-平行四边形
  18. CRAFT字符检测算法和SynthText合成文本数据集
  19. SEO培训联盟排名掉的原因:宋星博客?
  20. 一:部署harbor镜像仓库

热门文章

  1. QQ无法安装 系统时间问题
  2. 《团队作业》五小福团队作业--UNO-- LandingDay--降落
  3. 图解Js event对象offsetX, clientX, pageX, screenX, layerX, x区别
  4. 【算法数据结构初阶篇】:位图bitMap
  5. Beam Search的学习笔记(附代码实现)
  6. 半年蒸发万亿,谈谈腾讯游戏的得与失!
  7. android popupwindowd弹出时后面变灰色,自定义PopupWindow弹出后背景灰色状态
  8. java文件转换成byte数组以及byte数组上传到文件
  9. C-多线程,冰淇淋问题
  10. 微信小程序中换行空格(多个空格)