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. 【Verilog HDL 训练】第 09 天(按键消抖)
  2. Javascript网页摇一摇
  3. getElementById和querySelector区别
  4. 内联函数 —— C 中关键字 inline 用法解析
  5. minikube start 使用Hyper-V
  6. Python源码深度解析—对象的创建
  7. Java韩顺平 | IO流专题 | 学习小记
  8. (转) SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
  9. 在 Mac 上的“照片”中如何把文件夹中的相簿分组?
  10. plotting and saving over line in paraView
  11. 零门槛修改微信步数(基于虚拟xposed)
  12. Safari浏览器兼容性问题处理
  13. Redis篇 <一>Docker安装redis 及基础
  14. 不稳定的排序-选择排序
  15. 3.购买服务器并部署
  16. 网络与通信:网络协议(概念)
  17. 有赞,我们来谈谈尊重和感恩员工
  18. 360等中概股借壳回归之路,亦是赌徒赌壳之时
  19. java中.next()方法的作用及应用?
  20. 淘宝客流量劫持是什么意思?与淘宝劫持百度流量原理相同吗?

热门文章

  1. 司空见惯 - 2022世界杯
  2. 水月雨发布Sparks火花TWS蓝牙耳机:二次元包装,半透明充电盒
  3. php伪静态设置,phpstudy伪静态设置
  4. h5登录闪退_传奇登录器突然间闪退
  5. 机器学习基础-经典算法总结
  6. Cadence OrCAD Capture标准化设计AliasRot功能介绍图文与视频演示
  7. 解密SVM系列(一):关于拉格朗日乘子法和KKT条件
  8. 大航海时代 空挖资料 (转贴)
  9. 【小工具】用PIL算法库制作出图片合成工具
  10. Python实现Huffman算法求最优二叉树