【问题标题】:Instantiating Gameobject changes its shape实例化 Gameobject 会改变其形状
【发布时间】:2021-12-03 21:05:33
【问题描述】:

通过这种方式从预制件实例化对象时(在空项目中,Unity 2020.3.2f1):

myObject = Instantiate(preObject, Parent.transform);

这个改变了myObject的形状。其实我也不知道为什么。

找到一个决定:

myObject = Instantiate(preObject);

myObject.transform.parent =Parent.transform

这是一个错误还是我太懒了,我无法阅读文档?

【问题讨论】:

  • 只是猜测。但是父对象是否有除 1,1,1 之外的任何其他 localScale? (这件事的任何父母)如果父母被拉伸,例如 1,1,2 它也会影响它的孩子。
  • 它被拉伸了 10、10、1。我不确定它是 lossyScale 还是 localScale。今天要对立方体 1,1,1 做同样的事情
  • Golden Dremora,你说得对。父母被localScale拉伸,这对孩子有影响。 lossyScale 是只读的,所以我现在唯一知道的方法是上面写的

标签: parent instantiation shapes


【解决方案1】:

我无法发表评论,因为我没有足够的代表..

您还可以将变换设置为父级,而不仅仅是将子级比例设置为 1/parentScale。

obj = Instantiate(newObj, parent);
obj.localScale = new Vector3(1/parent.localScale.x, 1/parent.localScale.y, 1/parent.localScale.z);

如果您有多个父母使用拉伸比例,您可以尝试使用 parent.losssyScale

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    相关资源
    最近更新 更多