unity transform的position和localPosition属性的区别

2025-01-08 02:42:05
推荐回答(2个)
回答1:

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));
}
}

回答2:

Vue实践-CSS样式position/display/float属性对比使用