Unity 鼠标拾取
你現在的問題是要把螢幕2D的滑鼠座標( x , y , 0 )
轉換成滑鼠在那一點時的空間座標先把你的人物的Transform放入 character
var character : Transform;
創建一個相機
var mainCamera : Camera; 然後做一個平面
var playerMovementPlane : Plane; function Awake () {
然後把mainCamera設為主相機
mainCamera = Camera.main; 然後把NEW出這個平面並且把這個平面放到角色上
playerMovementPlane = new Plane (character.up, character.position);
}
function Update () {
宣告螢幕2D的滑鼠質點
var cursorScreenPosition : Vector3 = Input.mousePosition;
宣告空間中的滑鼠質點 這裡要進行一些轉換就可以得到了 mainCamera是你的主相機
var cursorWorldPosition : Vector3 = ScreenPointToWorldPointOnPlane (cursorScreenPosition, playerMovementPlane, mainCamera);
}public static function ScreenPointToWorldPointOnPlane (screenPoint : Vector3, plane : Plane, camera : Camera) : Vector3 { //將滑鼠的螢幕位置轉換成空間中的射線 ray=射線 var ray : Ray = camera.ScreenPointToRay (screenPoint); //找出射線與平面相交 return PlaneRayIntersection (plane, ray);
}
public static function PlaneRayIntersection (plane : Plane, ray : Ray) : Vector3 { var dist : float; //光线投射 一条射线和平面相交。 plane.Raycast (ray, dist); //获取点 返回沿着射线在distance距离单位的点。 return ray.GetPoint (dist);
}
//转换对象到当前屏幕位置Vector3 screenPosition = camera.WorldToScreenPoint (transform.position);//鼠标屏幕坐标Vector3 mScreenPosition=new Vector3 (Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);//获得鼠标和对象之间的偏移量,拖拽时相机应该保持不动Vector3 offset = transform.position - camera.ScreenToWorldPoint( mScreenPosition);
Unity 鼠标拾取相关推荐
- Three.js - 鼠标拾取(射线追踪法)(十九)
射线追踪法 射线追踪法是最常见的方法,因为three.js提供了Raycaster对象来实现它. 原理:从鼠标处发射一条射线,穿透场景的视椎体,通过计算,找出与射线相交的对象. Raycaster 属 ...
- DirectX11进阶5_硬件实例化与视锥体裁剪及鼠标拾取交互
一.硬件实例化(Hardware Instancing) 硬件实例化指的是在场景中绘制同一个物体多次,但是是以不同的位置.旋转.缩放.材质以及纹理来绘制(比如一棵树可能会被多次使用以构建出一片森林). ...
- unity 鼠标放置 ui_ui层次结构以及不常见但至关重要的任务放置在哪里
unity 鼠标放置 ui Modern technology is complex. It's not always complicated though, thanks to our consta ...
- Unity鼠标图标更换/点击图标更换
Unity鼠标图标更换/点击图标更换 效果展示: 代码: using System.Collections; using System.Collections.Generic; using Unity ...
- 鼠标拾取(光线拾取)
作者:桑榆 QQ:934440653 有问题,评论留言,或qq联系 案例效果 鼠标拾取 主要代码 1.创建矩形 (1)6-8行限制随机产生的矩形的长.宽.纵深不超过20: (2)14-16行限制随机产 ...
- unity鼠标滑动检测
Unity鼠标滑动检测 private Vector2 first = Vector2.zero; private Vector2 second = Vector2.zero; void Update ...
- Unity鼠标控制摄像机 围绕物体旋转
Unity鼠标控制摄像机 围绕物体旋转 角度范围判定 // An highlighted block using UnityEngine;public class CameraCtrl : MonoB ...
- OpenGL3.3鼠标拾取物体
OpenGL3.3鼠标拾取物体 本文翻译自:http://www.lighthouse3d.com/tutorials/opengl-selection-tutorial/ 在3D场景中拾取或选择特定 ...
- 【Unity鼠标从屏幕空间(坐标)转换为世界空间(坐标)】
Unity鼠标从屏幕空间(坐标)转换为世界空间(坐标) Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position); ...
最新文章
- linux中时间戳与date的互转
- 在QT的LineEdit框中输入特定字符(正则表达式的使用)
- 045_Collapse折叠面板
- Spring Boot开发MongoDB应用实践
- 【MATLAB统计分析与应用100例】案例014:matlab读取Excel数据,调用stepwise函数作交互式逐步回归分析
- 河流为什么是弯曲的?
- UBOOT问题收集(1)--balignl 16, 0xdeadbeef
- 更新Windows ActiveX,Ios
- js版palppy brid代码_从 JS 引擎到 JS 运行时(上)
- LeetCode Binary Tree Right Side View (DFS/BFS)
- python计算一定期间的涨幅_python数据分析与挖掘(十一)--- ndarray运算
- 力扣-830 较大分组的位置
- 【Java必备技能三】自定义注解
- 笔记本装那一版本Linux好,在我的新笔记本电脑上安装五种Linux版本
- android获取系统签名,Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名...
- list object has no attribute ZScan_【恋爱体验】No.112丨大二男生,河南南阳,身高178,喜欢篮球、羽毛球、兵乓球、足球.........
- 翻译:SQL Server 2005中的覆盖索引
- 斗战神单机版正在连接服务器,斗战神登录卡在这里,又不提示登录失败或者连接超时什......
- lopa分析_SIS知识贴:一文看懂保护层分析暨LOPA分析
- 使用u盘安装Fedora14
热门文章
- excel文件输入姓名,得到班别
- 打印服务器配置与设计文档,配置与管理打印服务器.ppt
- 树形结构的json格式封装
- 2021年N2观光车和观光列车司机考试技巧及N2观光车和观光列车司机考试试题
- 有向图寻找环路python_有向图的深度优先搜索 —— 找出环路
- 基于骁龙820A系统的自动驾驶发展趋势
- 红米2打冲锋,小米5拼刺刀,与魅族荣耀肉搏到底
- IDEA新建项目系列(8)——IDEA创建SSH项目
- OSI的七层模型,网线,网卡,集线器,交换机,路由器分别工作在七层模型中的哪一层?
- FeedingFrenzy大鱼吃小鱼