所以,我在Unity中使用C#来使用Unity UI放置一些对象,我有一个对象,在脚本中的位置与场景中的位置不同。我在一个函数中有以下代码:
using UnityEngine;
using System.Collections;
public class SeedChecker : MonoBehaviour {
Vector3 lockedPos;
RectTransform tran;
// Use this for initialization
void Awake () {
tran = GetComponent<RectTransform>();
}
public void LockPos(Vector3 pos) {
tran.localPosition = pos;
lockedPos = pos;
print (tran.localPosition);
}
}
作为一个例子,这段代码打印出它的x位置是-60——这正是我要找的正确数字——屏幕中央左侧60个像素。但是,当我在检查器和场景中查看时,x位置是0——对象恰好位于屏幕中央。这造成了一种相当令人沮丧的情况,我也在这里谈到过。这很令人沮丧,因为它说它正在获取正确的位置,但是当我将这个正确的位置分配给对象时,它会去到我认为是错误的位置。这是对RectTransforms中localpositions工作方式的误解吗?我的对象是一些对象的子级,但它们都被归零到屏幕中心,并且缩放值为“1”。