C# 为什么Unity预置值在实例化时是错误的?

C# 为什么Unity预置值在实例化时是错误的?,c#,unity3d,C#,Unity3d,我在一个角色上有一个C#脚本,其中包含对预置的引用 初始化期间,脚本将运行: weaponSlot = Instantiate(weaponPrefab) as Transform; 和设置 weaponSlot.parent = rightHand; 预设包含武器的缩放信息,以及一些小的旋转和位置偏移,以使其看起来正确 当游戏运行时,武器的实际位置与右手的偏移量很大,尽管旋转保持不变。缩放比例也有点小,比预制尺寸小约40% 任何关于为什么会发生这种情况的见解,甚至关于检查内容的提示都将不胜

我在一个角色上有一个C#脚本,其中包含对预置的引用

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

weaponSlot = Instantiate(weaponPrefab) as Transform;
和设置

weaponSlot.parent = rightHand;
预设包含武器的缩放信息,以及一些小的旋转和位置偏移,以使其看起来正确

当游戏运行时,武器的实际位置与右手的偏移量很大,尽管旋转保持不变。缩放比例也有点小,比预制尺寸小约40%


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

确保将所有模型包装在一个空的游戏对象中。根游戏对象下的大小、位置和方向必须正确。当您在父项下实例化游戏对象时,您需要确保将localPosition和LocalEuleRanges(将它们设置为Vector3.zero)归零。您还需要设置localScale=Vector3.one

在项目中应该是这样的:

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


然后将其设置为父对象。

确保将所有模型包装在一个空的游戏对象中。根游戏对象下的大小、位置和方向必须正确。当您在父项下实例化游戏对象时,您需要确保将localPosition和LocalEuleRanges(将它们设置为Vector3.zero)归零。您还需要设置localScale=Vector3.one

在项目中应该是这样的:

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


然后你将其设置为父项。

在unity store上使用免费的angelic剑03,预设的比例默认为0.02,在我们修正模型并制作自己的预设后,一切正常。感谢您为我们指明了正确的方向!在unity store上使用免费的angelic剑03时,预设的比例默认为0.02,在我们修正模型并制作自己的预设后,一切都按预期进行。感谢您为我们指明了正确的方向!