Unity 本地坐标到世界坐标,世界坐标到本地坐标

世界=>本地

  public GameObject mTarget;
    public GameObject mPar; //这个注意一定要是mTarget的第一父物体。
 // Use this for initialization
 void Start () {
        string tarStr = string.Format("mtarget local:{0},world:{1}", mTarget.transform.localPosition, mTarget.transform.position);
        string parStr = string.Format("mPar local:{0},world:{1}", mPar.transform.localPosition, mPar.transform.position);
        Debug.Log(tarStr);
        Debug.Log(parStr);
        var t = mPar.transform.InverseTransformPoint(mTarget.transform.position);
        Debug.Log(t);
 }

注意:世界坐标转本地坐标。需要注意的是世界坐标转本地坐标调用的方法 InverseTransformPoint,需要其父物体的transform.即使拥有父物体的父物体,这里也只用父物体即可。

本地=>世界

worldPos = mPar.TransformPoint(localPos);

原文地址:https://www.cnblogs.com/u3ddjw/p/8510315.html

时间: 2024-08-06 14:30:14

Unity 本地坐标到世界坐标,世界坐标到本地坐标的相关文章

将世界坐标转成NGUI坐标

将世界坐标转成NGUI坐标,这个中间需要一个屏幕坐标,可参考如下代码: /// <summary> /// 将世界坐标转成UI坐标 /// </summary> /// <param name="wordPos">Word position.</param> public Vector3 wordPos_to_uiPos(Vector3 wordPos) { Vector3 screenPos = Camera.main.WorldToS

[Tool] Chrome内的本地网页,使用XMLHttpRequest读取本地档案

[Tool] Chrome内的本地网页,使用XMLHttpRequest读取本地档案 问题情景 开发Cordova这类以网页内容作为UI的Hybrid APP时,开发人员可以使用IDE的功能将程序布署到手机或是仿真器来侦错.但是以笔者的经验来说,要检视HTML网页元素.观看CSS样式继承,最顺手的开发者工具还是Chrome.这时如果开发人员选择透过Chrome来模拟Hybrid APP,以档案方式加载本地网页来侦错,并且在网页里使用了XMLHttpRequest来额外加载本地档案(ex:Angu

本地windows下搭建git的本地服务器

本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H:\gitblit 第二步: 修改gitblit安装目录下的data文件下的gitblit.properties 第17行处:include = defaults.properties 修改为 include = my.properties 第三步: 从data文件夹下找到defaults.prope

逻辑坐标与设备坐标——全窗口坐标、屏幕坐标、客户区坐标的总结

Windows应用程序绘制图形时使用的是一种逻辑单位,每个逻辑单位的大小由映射模式决定,这个逻辑单位既可以与设备单位(屏幕或打印机上的一个 像素点)相同,也可以是一种物理单位(如毫米),还可以是用户自定义的一种单位.在Windows应用程序中,只要与输出有关系,都要使用映射模式. 首先谈谈映射模式基本知识,当Windows应用程序在其客户区绘制图形时,必须给出在客户区的位置,其位置用x和y 两个坐标表示,x表示横坐标,y表示纵坐标.在所有的GDI绘制函数中,这些坐标使用的是一种"逻辑单位&quo

己知矩形两对角点坐标,计算矩形区域内所有坐标

时不时要用到求坐标,原来写过又忘了,重写一次备忘 private string getAllPoint(Point p1, Point p2)        {            string info = "";            int minNumX = 0;            int minNumY = 0;            for (int i = 0; i < Math.Abs(p2.X - p1.X) + 1; i++)            { 

计算两个坐标点之间的点的坐标

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>计算两个坐标点之间的点的坐标</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> &l

unity中UI坐标转3d世界坐标

方法: public static Vector3 UIScreenToWorldPoint(Vector3 uiPostion) { uiPostion = UICamera.mainCamera.WorldToScreenPoint(uiPostion); uiPostion.z = 1f; uiPostion = Camera.main.ScreenToWorldPoint(uiPostion); return uiPostion; }

Unity 图片分割将spirte保存在本地

如果你拿到的是一张整图,你想分割之后使用NGUI sprite来使用!  下面就能解决的需求. 步骤: 1. 使用Unity自带的spirte进行分割图片 2. 使用代码把分割出来的2DSpirte转换成本地PNG图片,再导入Unity使用atlas纹理O(∩_∩)O~ 注意事项: 1.  图片切换成Advanced类型 Read/Write Enabled勾上,不然会抛出异常 直接上代码: [MenuItem("Tools/导出精灵")] static void SaveSprite

世界坐标转到UGUI坐标

public static Vector3 WorldToUI(Camera camera,Vector3 pos){ CanvasScaler scaler = GameObject.Find("UIRoot").GetComponent<CanvasScaler>(); float resolutionX = scaler.referenceResolution.x; float resolutionY = scaler.referenceResolution.y; V

【小松教你手游开发】【unity实用技能】根据上一个GameObject坐标生成的tips界面

开发游戏,特别是mmo手游的时候经常需要开发的一个需求是,点击某个装备,在它附近的位置生成一个tips界面,介绍装备功能和各种信息. 像上面红色框框里的这个. 这个主要的问题是 根据点击的GameObject对应生成这个详情界面时,详情界面位置需要合理摆放(不能显示不到,不能遮挡等) 基本的思路是, 首先找到GameObject的position, 把手机屏幕大概分成四个象限,知道这个GameObject大概在这个屏幕的哪个象限(左上,左下,右上,右下) 根据象限来判断详情界面应该在GameOb