zoukankan      html  css  js  c++  java
  • 【Unity3D】获取鼠标在三维空间(世界坐标系)的位置

    路过的大神,如有发现不足,还望批评指正,只为学习和知识分享!
    前言:
      transform.position: 获取的是世界坐标(以场景中心(0,0,0)的位置开始计算,单位长度也都是一样的)
      物体在世界坐标,无论怎样的UI,怎样的层级关系,代码里输出Debug.log(go.transform.position),输出的总是相对于场景中心(0,0)的距离,
      也是获取世界坐标的方法。
      鼠标:获取的是2维坐标 ,鼠标位置Input.mousePosition获取的是屏幕坐标。
      屏幕坐标:屏幕空间以像素定义,屏幕左下为(0,0),右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离。
      或者说:以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。

    逻辑分析:
      首先,确定(获取)世界坐标系,将其转化为屏幕坐标系;(需要z轴数据)
      其次,把鼠标位置转成三维的屏幕坐标,将拿到的z轴数据赋给鼠标坐标的z轴,就是物体屏幕坐标的z轴,使鼠标坐标与目标对象坐标处于同一层面上;
      最后,将新的鼠标三维屏幕坐标转化为世界坐标系下的鼠标坐标。
      搞定。
    代码如下:
      
    Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
      
    Vector3 mousePosOnScreen = Input.mousePosition;
      
    mousePosOnScreen.z = screenPos.z;
      Vector3 mousePosInWorld = Camera.main.ScreenToWorldPoint(mousePosOnScreen);

    另:屏幕坐标系下鼠标准确位置: 获取鼠标在屏幕的准确点击位置
  • 相关阅读:
    安装mongoDB时,总是报错,启动不了
    koa2路由
    异步操作async await
    nodeJs koa-generator脚手架
    nodeJs学习-19 个人博客案例-(1)数据字典
    nodeJs学习-18 mysql数据库了解
    nodeJs学习-17 博客案例
    nodeJs学习-16 数据字典示例
    前端图片压缩后,文件流上传
    Linux用户名显示-bash-4.1$快速排查
  • 原文地址:https://www.cnblogs.com/yanghui0702/p/yanghui_20180628.html
Copyright © 2011-2022 走看看