关于Unity中的世界坐标和局部坐标

1.物体的局部坐标的方向(物体自身的方向)

transform.forward、 transform.right、 transform.up

2.物体的世界坐标的方向

Vector3.forward、 Vector3.right、 Vector3.up

例子:

子弹沿自身坐标轴的Z轴方向运动

Vector3 v = this.transform.forward * this.speed;

this.body.velocity = v;

注意:

父节点在Scene视图中显示出来的位置并非真正的Inspector面板中的position,父节点在Scene视图中显示出来的位置会随着子节点的变多而发生改变,一般是所有子节点的中心位置,但是这个位置并不是它自己真正的位置

世界坐标用的比较多,在Inspector面板中填的position都是局部坐标,在代码中写的都是世界坐标,只要我们在代码中写

Debug.Log("cube"+this.transform.position);,打印出来的就是世界坐标,是父节点的Inspector面板中填的position加上当前节点(子节点)Inspector面板中填的position相加的结果

要想打印出Inspector面板中填的position的数值,也就是局部坐标的值,使用的是Debug.Log("cube"+this.transform.localPosition);

时间: 2024-10-06 23:10:25

关于Unity中的世界坐标和局部坐标的相关文章

unity中mesh属性的uv坐标讨论

http://blog.sina.com.cn/s/blog_427cf00b0102vp0j.html 之前在做连连看游戏中,也用到贴图坐标,当时我们讲到,不管是平铺(Tiling)还是偏移(Offset),我们参考的基准都是原始的那张图,Tiling配合Offset,Tiling负责截取,Offset负责移动,最终实现截取贴图的任一部分?,但是这种方法弄出的图形形状都是方块的,无法实现任意的贴图 而下面要讨论的方法和上面的方法会大不一样,会从UV坐标的角度去讨论,从而实现想怎么贴就怎么贴的效

世界坐标转为局部坐标

transform.InverseTransformPoint(vector3); transform  就是要转为哪个物体的局部坐标 参数vector3 就是要转的那个世界坐标 比如,我要把一个怪物的世界坐标转为主角的局部坐标,这样就好判断之间的距离了.

将NGUI的坐标转换Unity中的世界坐标

今天遇到个问题,要把NGUI的transform坐标转成世界坐标,难住我了可,查了好多资料,总算有点眉目,弄出来和大家分享,其实发现NGUI的坐标也是三维Vector3的,但是他和世界坐标的Vector3的值代表的不一样.不信大家可以打印出来,看一看.  public GameObject target;  public GameoObject objUi;    public void ScreenToWord()     {          //此原理就是先将UI坐标转成屏幕坐标,在把转成

UNITY 复制对象后局部坐标和世界坐标的变化问题

void Start () { var pgo = transform.Find ("Button").gameObject; obtn = Instantiate (pgo); //obtn = Instantiate (pgo, pgo.transform.Parent);         var pos = obtn.transform.position; //obtn.transform.localPosition = Vector3.zero; Debug.LogFormat

关于Unity中Shader的使用

在游戏的开发过程中,程序员不太会自己去写shader,因为写起来很麻烦,而且只有Unity会报错,编译器也没有什么提示. 通常是拿别人的shader改一改,当然,程序员还是要能看懂和会一点shader Unity坐标系转换 1: transform.localToWorldMatrix 局部转世界的矩阵;2: transfrom.worldToLocalMatrix 世界坐标转局部坐标矩阵; MultiplyPoint, MultiplyPoint3x4 MultiplayVector 来进行坐

U3D局部坐标和全局坐标详解(或世界坐标)

父子化(摘自官文原文说明) 父子化 (Parenting) 是使用 Unity 时需要理解的最重要的概念之一.当某个游戏对象 (GameObject) 是另一个游戏对象 (GameObject) 的父级 (Parent) 时,子级 (Child) 游戏对象 (GameObject) 会像其父级 (Parent) 一样移动.旋转和缩放.正如您的手臂与躯干相连,转动躯干时,手臂因为与其相连也会移动.任何对象都可以有多个子级,但却只能有一个父级. 您可以通过将层级视图 (Hierarchy View)

将Unity中的世界坐标转换成NGUI中的坐标

将Unity中的世界坐标转换成NGUI中的坐标,比如可用于自制血条等.代码如下: 1 using UnityEngine; 2 using System.Collections; 3 public class Healthbar : MonoBehaviour { 4 public GameObject TargetObject; //目标物体.这里是指Cube 5 public Camera worldcamera; //世界相机. 6 public Camera guiCamera; //U

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.

解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式

在上一个样例中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上. 这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面剪裁(front face culling and back face culling)来达到透明效果. 当一个mesh组件的信息被传递后,我们能够通过代码决定哪些部分渲染(render)出来.而哪些部分不要.这个过程就像把那些不要的部分剔除了,我们看不到他.尽管他的mesh信息还在.可是我们的G