实例化时为什么Unity Prefab值错误?

Cod*_*ion 1 c# unity-game-engine

我在一个字符上有一个C#脚本,它包含对Prefab的引用.

在初始化期间,脚本运行:

weaponSlot = Instantiate(weaponPrefab) as Transform;
Run Code Online (Sandbox Code Playgroud)

并设置

weaponSlot.parent = rightHand;
Run Code Online (Sandbox Code Playgroud)

预制件包含武器的缩放信息,以及一些小的旋转和位置偏移,使其看起来正确.

当游戏运行时,虽然旋转得以保留,但武器的实际位置会从右手上偏移一大部分.缩放也有点偏差,比预制尺寸小约40%.

任何关于为什么会发生这种情况的见解,或者甚至提示要检查的内容都将受到赞赏!

Min*_*wth 6

确保将任何模型包装在空的游戏对象中.根游戏对象下的大小,位置和方向需要正确.当您在父项下实例化游戏对象时,您需要确保将localPosition和localEulerAngles(设置为= Vector3.zero)清零.您还需要设置localScale = Vector3.one.

它应该在项目中看起来像这样:

预制(零位,零旋转,一个刻度)
- >模型(正确缩放,旋转和位置)

然后你养育它.