Cannot instantiate objects with a parent which is persistent. New object will be created without a parent.
时间: 2024-02-17 15:04:32 浏览: 82
这错误通常会在你尝试在场景中实例化一个游戏对象时出现。该错误的原因是你试图在一个已经标记为“Don’t Destroy On Load”(不要在场景加载时销毁)的游戏对象下创建一个子对象,而这是不允许的。
通常情况下,你可以通过将实例化的对象的父对象设置为场景中的其他游戏对象来避免这个错误。如果你确实需要将实例化的对象添加到“Don’t Destroy On Load”对象下,你可以使用以下方法:
```csharp
GameObject newObject = Instantiate(prefab, position, rotation);
newObject.transform.SetParent(parentObject.transform, false);
```
这里,我们使用 Instantiate() 方法来创建一个新的游戏对象。然后,我们使用 transform.SetParent() 方法将其设置为指定的父对象。我们还将第二个参数设置为 false,以确保不会改变新对象的位置、旋转或缩放。
如果你不需要将实例化的对象添加到“Don’t Destroy On Load”对象下,你可以将其父对象设置为场景中的其他对象。例如:
```csharp
GameObject newObject = Instantiate(prefab, position, rotation, parentObject.transform);
```
这里,我们使用 Instantiate() 方法的第四个参数来指定新对象的父对象。请确保父对象不是已经被标记为“Don’t Destroy On Load”的对象。
希望这个解决方案可以帮到你!