码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-16 22:29:47      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   io   color   os   使用   sp   

  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. bubuko.com,布布扣
     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             }
    View Code

    bubuko.com,布布扣

bubuko.com,布布扣

 

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

标签:style   blog   http   ar   io   color   os   使用   sp   

原文地址:http://www.cnblogs.com/diamond/p/4168083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!