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. 想做程序员却不知从何下手?新手入门信息打包送你!
  2. 面试程序员总结的通病!
  3. 解决Mac Pro上IDEA卡顿的问题
  4. “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
  5. java学习笔记—校验码的实现(15)
  6. 笔记本显示器仅计算机,将笔记本电脑(仅一个HDMI接口)连接到双屏幕(谨慎使用)的解决方案...
  7. Web开发-数据格式选择
  8. 动态规划下的巴什博弈
  9. 循环比赛日程表(信息学奥赛一本通-T1325)
  10. 面试必会之LinkedList源码分析
  11. Magnet for mac(专业窗口辅助工具)支持m1
  12. PHP学习笔记之PDO
  13. 条形码是什么,主要有什么区别
  14. matlab 四面体体积
  15. 《测绘综合能力》真题易错本
  16. PAT 1015 德才论(C语言)
  17. 申请美国大学计算机专业,低GPA如何申请美国大学计算机专业
  18. 招商银行信用卡还款冲账顺序
  19. JNLP文件具体说明编辑
  20. 【状语从句练习题】连词 + 过去分词

热门文章

  1. python中编码格式设置为utf-8_如何设置python编码格式为utf-8
  2. 学计算机好还是学修车好,怎样的人不适合修车 学修车好吗
  3. Linux系统故障修复和修复技巧
  4. 《python基础教程》答案(第六章)
  5. Intent.ACTION_PROCESS_TEXT实现摘抄功能
  6. SQLServer使用语句添加备注
  7. 西部广播电视杂志西部广播电视杂志社西部广播电视编辑部2022年第4期目录
  8. 【Vue组件间通信】 全局事件总线、订阅与发布
  9. elementUI进度条默认背景色修改
  10. Android音频子系统(一)------openOutput打开流程