首页 > 解决方案 > 为什么我的预制件在场景中掉落​​时位置会发生变化?

问题描述

我有一个问题,我制作了一个要放置在平台上的立方体的预制件。我的预制件的 y 值为 1。但是,当我尝试将其放置在平台上时,立方体的 y 值为 0.5,将其放置在地面内。我试图重置预制件、地面和立方体中的变换,但这些都不起作用。

我的统一窗口的屏幕截图,其中包含预制件及其值的更改方式。

标签: c#unity3dprefab

解决方案


我假设您将预制件拖到Scene窗口中而不使用代码或类似的东西。

为什么位置会被修改

您的立方体位于地面一半的原因可能是由于 Unity 试图将其置于场景中地面对象的 Y 轴中心,因为这很可能是您拖动预制件的对象。

解决方案 1

如果您希望将东西拖入Scene窗口但又希望避免立方体进入地面,一种解决方案是更改立方体的中心位置。这样做的一种方法是将立方体放入一个空的GameObject并修改立方体在其中的位置并将其GameObject用作预制件。这是一个屏幕截图,说明了您修改后的预制件的外观:
在此处输入图像描述

解决方案 2

如果希望将立方体移动到场景中而不进行任何位置修改,请将其拖到Hierarchy窗口中。

解决方案 3

创建一个自定义脚本来修改立方体预制实例的 Y 位置。OnValidate()可能是值得研究的解决方案。


推荐阅读