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

时间:2013-11-03 21:01:52

标签: c# unity3d

我在一个字符上有一个C#脚本,该字符包含对预制件的引用。

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

weaponSlot = Instantiate(weaponPrefab) as Transform;

并设置

weaponSlot.parent = rightHand;

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

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

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

1 个答案:

答案 0 :(得分:6)

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

项目中应如下所示:

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

然后你养育它。