我有一个关于角色的 C# 脚本,它包含对预制件的引用。
在初始化期间,脚本运行:
weaponSlot = Instantiate(weaponPrefab) as Transform;
和集合
weaponSlot.parent = rightHand;
预制件包含武器的缩放信息,以及一些小的旋转和位置偏移,以使其看起来正确。
当游戏运行时,武器的实际位置从 rightHand 偏移了很多,尽管旋转被保留了下来。缩放比例也有点偏差,比预制尺寸小大约 40%。
任何关于为什么会发生这种情况的见解,甚至是关于检查内容的提示都将不胜感激!
最佳答案
确保将所有模型包裹在一个空的游戏对象中。根游戏对象下的大小、位置和方向需要正确。当您在父级下实例化游戏对象时,您需要确保将 localPosition 和 localEulerAngles 归零(设置它们 = Vector3.zero)。您还需要设置 localScale = Vector3.one。
在项目中应该是这样的:
预制件(零位置,零旋转,一个比例尺)
->模型(正确的缩放、旋转和位置)
然后你为它做 parent 。
关于c# - 为什么实例化时 Unity Prefab 值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758081/