Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在对预置进行了一些位置更改后,我不能对预置进行覆盖?_C#_Unity3d - Fatal编程技术网

C# 为什么在对预置进行了一些位置更改后,我不能对预置进行覆盖?

C# 为什么在对预置进行了一些位置更改后,我不能对预置进行覆盖?,c#,unity3d,C#,Unity3d,我将FPEPlayerController预置拖到层次结构中,并更改了它在X、Y、Z上的位置 但是现在,当我点击覆盖时,它显示没有覆盖,所以我无法保存我对预置所做的更改 我现在使用的层次结构中,预制件的唯一位置是FPECore: 但不确定这是否会导致没有覆盖的问题。 FPECore上也没有覆盖 Unity不关心对象在预置中的位置。最好的做法是在实例化它时,使用以下任何一种方法调用它: GameObject g = Instantiate(prefabName, position, rotatio

我将FPEPlayerController预置拖到层次结构中,并更改了它在X、Y、Z上的位置 但是现在,当我点击覆盖时,它显示没有覆盖,所以我无法保存我对预置所做的更改

我现在使用的层次结构中,预制件的唯一位置是FPECore: 但不确定这是否会导致没有覆盖的问题。 FPECore上也没有覆盖

Unity不关心对象在预置中的位置。最好的做法是在实例化它时,使用以下任何一种方法调用它:

GameObject g = Instantiate(prefabName, position, rotation);
GameObject g = Instantiate(prefabName, position, rotation, parentName);
GameObject g = Instantiate(prefabName, parentName, instantiateInWorldSpace);
如果使用最后一个,可以在实例化后设置位置和旋转

有关实例化的详细信息:


编辑:感谢Ron提醒我预制件如何处理其保存的值

位置基本上与预制件无关。当您调用Instance时,您可以选择传入一个位置,或者应用默认的可选参数值0,0,0。我相信这是因为这是全局位置,而这对于预制件并不重要,因为它应该在实例化时给定一个位置。如果你想改变预制件的位置,你也可以进入预制件编辑器,然后手动改变其位置。这是错误的,如果你调用实例化而没有给出具体位置,它会在保存的位置实例化所述预制件。话虽如此,我发现最好不要指望预置的转换值。@Ron真的吗?我以为它会在0,0,0被default@derHugo你在跟踪我吗是的,例如,如果你在10,0,0保存一个预置,并且你只使用预置调用实例化,它将在世界位置10,0生成,0@Ron这个问题昨天被问到了,我没有跟踪任何人^^我只是觉得我过去有不同的经历,但我测试了一下,你是对的@derHugo我这么问是因为我醒来时收到了4条通知——所有来自您的评论: