transform.position和transform.localPosition区别

1. position是根据世界原点为中心

2. localPosition是根据父节点为中心,如果没有父节点,localpositon和position是没有区别的

3.选中一个物体左上角Global和Local切换看物体世界坐标轴和本地坐标轴

using UnityEngine;
using System.Collections;

public class TestPostiton : MonoBehaviour {
void OnGUI()
{
if (GUI.Button(new Rect(0, 0, 200, 50), "世界坐标移动"))
{
this.gameObject.transform.position = new Vector3(gameObject.transform.position.x+1
,gameObject.transform.position.y
, gameObject.transform.position.z);
}

if (GUI.Button(new Rect(0, 50, 200, 50), "本地坐标移动"))
{
this.gameObject.transform.localPosition = new Vector3(gameObject.transform.localPosition.x+1
, gameObject.transform.localPosition.y
, gameObject.transform.localPosition.z);
}

GUI.Label(new Rect(210, 0, 300, 50), "世界坐标:" + string.Format("({0},{1},{2})", gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z));
GUI.Label(new Rect(210, 50, 300, 50), "本地坐标:" + string.Format("({0},{1},{2})", gameObject.transform.localPosition.x, gameObject.transform.localPosition.y, gameObject.transform.localPosition.z));

}

}
时间: 2024-11-06 19:44:43

transform.position和transform.localPosition区别的相关文章

Unity 3D中的Transform.Rotate 与Transform.RotateAround 的区别

Transform.Rotate 旋转 应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序). 如果相对于留空或者设置为Space.Self 旋转角度被应用围绕变换的自身轴.(当在场景视图选择物体时,x.y和z轴显示)如果相对于 Space.World 旋转角度被应用围绕世界的x.y.z轴. 1 gameObject.transform.Rotate(new Vector3(0,1,0),Inpu

Unity3d中transform.position.set无效的问题

最近在用Unity3d的时候发现一件很诡异的事情. 当使用下面句子的时候,物体的位置并没有被成功设置成x,y,z. transform.position.Set(x, y, z); 而换用下面句子的时候则可以成功设置. transform.position = new Vector3 (x, y, z); 查了下资料,发现和C#的类中的get.set有关,下面是一个get.set的典型例子. using System; class MyClass { int integer; public in

Unity bug: transform.position assign attempt for 'SceneCamera' is not valid. Input position is { NaN, NaN, NaN }. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

问题: Unity 报错: transform.position assign attempt for 'SceneCamera' is not valid. Input position is { NaN, NaN, NaN }. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) 解决方法: 改变Unity editor 布局(layout)可以解决这个奇怪的问题. Unity bug: transform.position assign a

transform、transition 和 animation区别

CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明:        transform   从字面来看transform的释义为改变,使…变形:转换 .这里我们就可以理解为变形.那都能怎么变呢? none 表示不进行变换: rotate 旋转            transform:rotate(20deg) 旋转角度可以为负数.需要先有transform-origin定义旋转的基点可为left top center right

基本3D变换之World Transform, View Transform and Projection Transform

作者:i_dovelemon 来源:CSDN 日期:2014 / 9 / 28 主题:World Transform, View Transform , Projection Transform 引言 在3D图形学中,基本几何变换是一个非常重要的操作.可以说,整个3D图形能够有效的显示,就是由于几个非常重要的基础3D变换贡献的.在前面的文章中,向大家承诺了,要详细的讲解在3D图形学中的三个基本的坐标变换.今天,就来像大家讲述,DirectX是如何进行变换. 变换的目的 在我们讲解具体的变换工作之

CSS 各种定位(position)方式的区别-韩烨

static:静态定位是position的默认值,元素框正常生成,也就是没有定位时的正常显示. relative:相对定位 用法一:元素相对自身的原位置偏移某个距离,但是原本的空间依旧保留,表现为空白. 用法二:把一个元素设置为position: relative; 可以使该元素的子元素相对该元素绝对定位. absolute:绝对定位 元素从文档流删除,并相对于包含块定位.元素在原本的空间关闭.元素定位后生成一个块级框,不论它原来是行内元素还是块级元素. 包含块:最近的position值不是st

CSS 各种定位(position)方式的区别

static:静态定位是position的默认值,元素框正常生成,也就是没有定位时的正常显示.        relative:相对定位   用法一:元素相对自身的原位置偏移某个距离,但是原本的空间依旧保留,表现为空白.   用法二:把一个元素设置为position: relative; 可以使该元素的子元素相对该元素绝对定位.   absolute:绝对定位   元素从文档流删除,并相对于包含块定位.元素在原本的空间关闭.元素定位后生成一个块级框,不论它原来是行内元素还是块级元素.   包含块

jquery 设置 transform/translate 获取 transform/translate 的值

//获取 transform 值 var reg=/matrix.((\d+([, ]+)?){6})./g; var str= progressUI.css("transform"); //str = matrix(1, 0, 0, 1, 0, 0) var arr=reg.exec(str); var newarr = arr[1].split(/[, ]+/g); //newarr = ["1", "0", "0", &

JQ之 offset 和 position 的用法与区别

offset:获取元素相对于文档(document)的当前坐标 注意 使用offset()方法不管该元素如何定位,也不管其父元素如何定位,都是获取的该元素相对于当前视口的偏移. postion : 获取元素相对父元素的偏移 注意: 1,使用position()方法时事实上是把该元素当绝对定位来处理,获取的是该元素相当于最近的一个拥有绝对或者相对定位的父元素的偏移位置. 2,使用position()方法时如果其所有的父元素都为默认定位(static)方式,则其处理方式和offset()一样,是当前