实现鼠标控制场景的视野及移动
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;}}
实现鼠标控制场景的视野及移动相关推荐
- Three.js用鼠标控制场景移动的代码
Three.js中的场景移动主要是通过摄像机移动来实现的. 下面是自己写的代码,主要是鼠标滚轮实现前进与后退和四个方向的移动. windowAddMouseWheel(); addTouchListe ...
- Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能(含源码工程)
相机控制 前言 效果 漫游效果 围绕节点效果 实现过程 功能范围 搭建场景 编码实现 变量设置 自由漫游 观察节点 功能使用 项目工程 瑕疵 前言 在很多情况下我们都会用到如题的功能,在一般情况下我们 ...
- 计算机视觉课程第六讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(上集):OpenCV4鼠标控制图像和视频任意位置放大和缩小
计算机视觉课程第六讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(上集):OpenCV4鼠标控制图像和视频任意位置放大和缩小 本专栏将会带大家学习 <计算机视觉与图 ...
- Python之OpenGL笔记(17):键盘鼠标控制摄像机移动旋转
一.目的 1.键盘控制摄像机自由移动: 2.鼠标控制摄像机旋转: 3.鼠标滚轮放大缩小视野. 二.程序运行结果 三.自由移动 view = lookAt(cameraPos, cameraPos + ...
- ogre3D学习基础10 -- 键盘控制与鼠标控制(直接控制)
要实现键盘,鼠标对场景的控制,首先要帧监听,就是在每一帧的渲染前后对它进行操作.这里的操作没有用到缓冲区,只是简单的直接获取. 1.这些步骤和前面的一样,直接上代码,操作还是在createScene函 ...
- 鼠标控制两台台式机_台式机和控制台上的真棒实时GI
鼠标控制两台台式机 We've teamed up with Alex Lovett again and built The Courtyard, a demo that puts the Preco ...
- VR项目添加键盘鼠标控制
VR项目添加键盘鼠标控制 使用VR模版创建的项目,程序运行后,只能使用VR头盔进行交互场景,不便于调试工作,为此,在场景中添加键盘.鼠标控制功能. 1 .键盘控制添加: 键盘控制主要为ASDW 键控制 ...
- Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理
Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 目录 Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 ...
- css3魔方鼠标怎么用,CSS3之3D魔方鼠标控制酷炫效果
前面文章有制作水晶魔方,这次我们升级一下它的功能,通过鼠标控制魔方旋转. 大家先看效果 这酷炫的效果,你怎么看? 这次效果,咱们需要用JS实现.主要是监听鼠标事件,计算鼠标滑动距离,改变魔方的rota ...
最新文章
- 想做程序员却不知从何下手?新手入门信息打包送你!
- 面试程序员总结的通病!
- 解决Mac Pro上IDEA卡顿的问题
- “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
- java学习笔记—校验码的实现(15)
- 笔记本显示器仅计算机,将笔记本电脑(仅一个HDMI接口)连接到双屏幕(谨慎使用)的解决方案...
- Web开发-数据格式选择
- 动态规划下的巴什博弈
- 循环比赛日程表(信息学奥赛一本通-T1325)
- 面试必会之LinkedList源码分析
- Magnet for mac(专业窗口辅助工具)支持m1
- PHP学习笔记之PDO
- 条形码是什么,主要有什么区别
- matlab 四面体体积
- 《测绘综合能力》真题易错本
- PAT 1015 德才论(C语言)
- 申请美国大学计算机专业,低GPA如何申请美国大学计算机专业
- 招商银行信用卡还款冲账顺序
- JNLP文件具体说明编辑
- 【状语从句练习题】连词 + 过去分词
热门文章
- python中编码格式设置为utf-8_如何设置python编码格式为utf-8
- 学计算机好还是学修车好,怎样的人不适合修车 学修车好吗
- Linux系统故障修复和修复技巧
- 《python基础教程》答案(第六章)
- Intent.ACTION_PROCESS_TEXT实现摘抄功能
- SQLServer使用语句添加备注
- 西部广播电视杂志西部广播电视杂志社西部广播电视编辑部2022年第4期目录
- 【Vue组件间通信】 全局事件总线、订阅与发布
- elementUI进度条默认背景色修改
- Android音频子系统(一)------openOutput打开流程