坐标转换
来源:互联网 发布:灰度共生矩阵 编辑:程序博客网 时间:2024/06/10 08:56
//2D转3D
public static string curHitTag;
public static Vector3 pointTo3d(Vector2 position,Camera mcamera,string layerName){
LayerMask mask = 1 << LayerMask.NameToLayer(layerName);
Ray ray = mcamera.ScreenPointToRay(new Vector3 (position.x,position.y,0));
RaycastHit hit;
if (Physics.Raycast(ray, out hit,800,mask)){
curHitTag = hit.transform.tag;
return hit.point;
}
curHitTag = null;
return Vector3.zero;
}
//注:LayerMask实际上是用Int32的32个位来表示每个层级,当这个位为1时表示使用这个层,为0时表示不用这个层
//3D转2D
public static Vector3 pointTo2d(Vector3 piont){
//GameObject mainCamera = GameObject.Find("Main Camera");
Camera camera = Camera.main;
Vector3 screenPiont = camera.WorldToScreenPoint(piont);
Vector3 viewportPiont = camera.WorldToViewportPoint(piont);
//Debug.Log(" screenPiont "+ screenPiont +" viewportPiont"+ viewportPiont);
GameObject canvas = GameObject.Find("Canvas");
CanvasScaler canvasScaler = canvas.GetComponent<CanvasScaler>();
float width = canvas.GetComponent<RectTransform>().rect.width;
float height = canvas.GetComponent<RectTransform>().rect.height;
float wb = width / Screen.width ;
float hb = height / Screen.height ;
return new Vector3( screenPiont.x * wb - width * 0.5f,screenPiont.y * hb - height * 0.5f,0);
}
//屏幕中心
public static Vector3 get2DpiontScreenCenter(){
return new Vector3(Screen.width * .5f, Screen.height * .5f, 0);
}
//屏幕中心地面坐标
public static Vector3 get3DpiontScreenCenter(){
GameObject mainCamera = GameObject.Find("Main Camera");
Camera camera = mainCamera.GetComponent<Camera> ();
Ray ray1 = camera.ScreenPointToRay (new Vector3 (Screen.width * .5f, Screen.height * .5f, 0));
RaycastHit hit1;
if (Physics.Raycast (ray1, out hit1)) {
return hit1.point;
}
return new Vector3();
}
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 坐标转换
- 百度坐标转换GPS坐标
- 【unity小技巧之四】变量弹出SortingLayer选择面板
- 查看sqlserver默认的编码格式
- android竖排显示TextView
- Error building Player: UnityException: Unable to install APK!
- 线程池(二)
- 坐标转换
- #if、#ifdef、#if defined之间的区别
- Java面试要点整理
- mac s3cmd 安装使用方案
- 指令选择器调查(7完)
- Java中时分秒毫秒格式(xx:xx:xx.xxx)转换为整数(毫秒数)
- android 获取手机的运营商
- Android NDK开发
- Why Protocol Buffer So Fast? ----protobuf编码详解