camera.ScreenPointToRay(),camera.ScreenToWorldPoint()与Raycast()

  1. camera.ScreenPointToRay(Input.mousePosition),自camera.tranform.position起经过Input.mousePosition发射一条ray并返回ray
  2. camera.ScreenToWorldPoint(Input.mousePosition+new Vector3(0, 0, (xxx))),将屏幕坐标转换为世界坐标,但必须赋z值,z值应为摄像机到该点所在平面的投影
  3. 不要忘记distance参数,使用layermask可能与distance混淆
  4.  1 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
     2             RaycastHit hit;
     3
     4             if (Physics.Raycast(ray,out hit,layermask))
     5             {
     6                 Vector3 dir = hit.point - Camera.main.transform.position;                   //dir为由摄像机指向摄像机到射线打到的点的向量
     7                 Vector3 forward = Camera.main.transform.forward;                            //指向摄像机正前方的单位向量
     8                 Debug.Log("Camera.main.ScreenToWorldPoint(Input.mousePosition) "
     9                     + Camera.main.ScreenToWorldPoint(Input.mousePosition)
    10                     + new Vector3(0, 0, (Vector3.Dot(dir, forward))));                      //Vector3.Dot(dir, forward)为dir与forward的点乘,几何意义为dir在forward上的投影
    11                 Debug.Log("hit.point " + hit.point);
    12             }

    

时间: 2024-09-28 18:27:25

camera.ScreenPointToRay(),camera.ScreenToWorldPoint()与Raycast()的相关文章

Android framework camera回顾-Camera CameraClient ICamera之间关系(1)-cl和c->mCamera去哪儿

status_t Camera::connectLegacy(int cameraId, int halVersion,  const String16& clientPackageName,    int clientUid,    sp<Camera>& camera)   {                                 sp<Camera> c = new Camera(cameraId);      sp<ICameraClient

Android Camera从Camera HAL1到Camera HAL3的过渡

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email:gzzaigcn2[email protected] Software:系统源码Android5.1 1. Android系统中Camera模块版本号的历史演变进度 /** * All module versions <= HARDWARE_MODULE_API_VERSION(1, 0xFF) must be treated * as CAMERA_MODULE_API_VERSION

Unity API 解析(2)&mdash;&mdash; Camera 类方法

RenderToCubemap  -- 生成Cubemap 静态贴图 RenderWithShader -- 使用其他Shader渲染 使用指定的shader来代替当前物体的shader渲染一帧.当replacementTag为空时会替换视口中所有物体的shader setReplacementShader与此方法相近,但不是只渲染一帧 ScreenPointToRay 近视口到屏幕的射线.参考点position用实际像素值的方式来决定Ray到屏幕的位置.参考点position的X轴分量或Y轴分

html5中拍照camera

方法: getCamera: 获取摄像头管理对象 对象: Camera: 摄像头对象 CameraOption: JSON对象,调用摄像头的参数 PopPosition: JSON对象,弹出拍照或摄像界面指示位置 回调方法: CameraSuccessCallback: 调用摄像头操作成功回调 CameraErrorCallback: 摄像头操作失败回调 权限: 功能模块(permissions) { // ... "permissions":{ // ... "Camera

Android Multimedia框架总结(十四)Camera框架初识及自定义相机案例

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52738492 前言:国庆节告一段落,又是新一月,上月主要是围绕MediaPlayer相关展开,从今天开始,开始分析多媒体框架中的Camera模块,看下今天的Agenda: Camera拍照 Camera录像 新API android.hardware.camera2 新旧API特点对比 Camera自定义相机 新API andro

Android Camera探究之路——起步

Android Camera探究之路--起步 Camera在手机中有着举足轻重的地位,无论是二维码还是照片.识别.都离不开摄像头,本文将对Android中的Camera进行全面解析. 权限镇楼: <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE&

【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)

 概述: 做过Android Camera图像采集和处理的朋友们应该都知道,Android手机相机采集的原始帧(RawFrame)默认是横屏格式的,而官方API有没有提供一个设置Camera采集图像的方向的方法,导致我们拿到原始帧后还需要再次对其进行转换为对应需求的数据,例如YUV的格式,图像的方向等(旋转多少度合适),下面我就粗略的介绍一下大致的流程,理解浅薄,大神请勿喷. 注意:当前还都是基于API<21的内容,如果压根不用android.hardware.Camera的话可能有区别,还没研

android从应用到驱动之—camera(2)---cameraHAL的实现

本来想用这一篇博客把cameraHAL的实现和流程都给写完的.搞了半天,东西实在是太多了.这篇先写cameraHAL的基本实现框架,下一篇在具体写camerahal的流程吧. cameraHAL的实现: 对于初学者来说,最大的疑问是系统是如何调用hardware的.这里就以camera来举例说明.调用hardware的程序是cameraservice,我们就去它里面看看它是如何找到hardware的 先把源码贴上来: /* ** ** Copyright (C) 2008, The Androi

CSharpGL(4)设计和使用Camera

+BIT祝威+悄悄在此留下版了个权的信息说: 主要内容 描述在OpenGL中Camera的概念和用处. 设计一个Camera以及操控Camera的SatelliteRotator. 以PyramidElement为例演示如何使用Camera和SatelliteRotator. +BIT祝威+悄悄在此留下版了个权的信息说: 下载 您可以在(https://github.com/bitzhuwei/CSharpGL)找到最新的源码.欢迎感兴趣的同学fork之. +BIT祝威+悄悄在此留下版了个权的信