预制体变换注意_WorldPositionStays|解决生成物体大小比例不一

首先一个预制体 保存的是当前对象的信息。当生成这个预制体的时候,注意WorldIsStay的赋值。

WorldisStay:是否经过世界转换。为True的时候,会把这个预制件,先放到世界坐标下,在放到当前物体下。也就是说你当时保存的预制件的Transform信息的局部信息,会先以世界为局部坐标系,然后在放到设置的物体下,因为画布是有缩放的,坐标系肯定与世界坐标系不一样,这样肯定不行,会出现比例位置旋转不一致的问题。

如图,我需要把一个需要遮罩的内容,放到所有遮罩物的下面,我想要保持内容的位置不变。那么我就要保证不偏移,而且要变换。我不可能以遮罩物为局部中心坐标系,我需要以在编辑器下设置预制体时候,预制体那个父物体为局部坐标系。这样才能保证我的wroldPosition是对的。然而不能直接通过一句Instantiate代码做到这件事情。因为worldStaytrue的时候他会先以世界为坐标系。为false时候 他会以你设置的父物体为局部坐标系。True false都不能满足我的要求。因为我的Position最后都会变化。

所以我要先保证我的预制体不先以世界为坐标系,然后再从其他地方入手。

于是想到图中操作,先生成到原来的父物体下面,这样我的位置就可以先保证是正确的。

然后在放到我的遮罩物下面,这时候设置物体的时候,就要经过变换了。

什么是变换?

就是说你要不要按照另一个物体的局部信息改变你的局部信息。

如果不变换,就意为你想要在变化父物体的同时保持之前的局部信息,无论要设置的父物体跟之前的父物体Transform信息不一致。

都知道在编辑模式下拖拽层级都会经过变换。不经过变换的只有一种情况从project中拖出预制体。所以说要想保证位置正确,一定要先保证代码设置的父物体要跟预制体原先的父物体一致,且不经过世界变换才行。

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/unity/1768
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
预制体变换注意_WorldPositionStays|解决生成物体大小比例不一
首先一个预制体 保存的是当前对象的信息。当生成这个预制体的时候,注意WorldIsStay的赋值。 WorldisStay:是否经过世界转换。为True的时候,会把这个预制件,……
<<上一篇
下一篇>>
文章目录
关闭
目 录