【发布时间】:2017-10-26 10:34:49
【问题描述】:
我有以下几行:
GameObject bp = Instantiate(MyPrefab);
bp.transform.SetParent(GameObject.FindGameObjectWithTag("ContentFactory").transform);
bp.transform.localPosition = new Vector3(0, 0, 0);
Si,我只是实例化了一个预制件,我设置了一个父级,我想改变位置。
我的问题是,函数SetParent 为我的bp GameObject 设置了一个固定位置,之后我不知道如何改变这个位置。最后一行没有任何改变....与.position相同。
如何更改bp 的位置?谢谢!
编辑:
ContentFactory 的检查员:
一个bp的检查员:
层次结构(蓝色的内容是ContentFactory):
【问题讨论】:
-
因此,当您使一个对象成为另一个对象的子对象时,localPosition = (0,0,0) 与该父对象在空间中的位置相同。如果该父对象存在于场景空间中的 (0,0,0) 处(假设它本身不是子对象),则 position = (0,0,0) 将是相同的。我不确定你的问题是什么,它对我有用。
-
啊啊,我们正在处理
RectTransforms。更改 RectTransform 的锚点和枢轴及其有效位置。你在任何地方都在改变它的锚点吗? -
不,我不会在任何地方更改锚点
-
好吧,对于滚动视图,您通常希望锚点 min:max 为
(0,1):(0,1)而不是(0.5,0.5):(0.5,0.5)以便localPosition值实际上意味着什么,或者按照程序员的建议和使用RectTransform.anchoredPosition