# InstantiateParameters

> Parameters for Object.Instantiate and Object.InstantiateAsync.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public struct InstantiateParameters
```

## Remarks

This structure is used in [Object.Instantiate](/engine/6000.7/script-reference/unityengine/object/instantiate.md) and [Object.InstantiateAsync](/engine/6000.7/script-reference/unityengine/object/instantiateasync.md) in order to provide maximum flexibility in the parameters you provide. It has the added benefit of unifying the meaning of the parameters in both methods.

The behaviour of the different parameter combinations is:

* **Default**: The instance will have the same local position and rotation as the original, it won't have a parent and it will be in the active scene.
* `worldSpace`: The instance will have the same world position and rotation as the original.
* **Default, method takes position and rotation**: Sets those values to the transform of the instance in local space.
* `worldSpace`**, method takes position and rotation**: Sets those values to the transform of the instance in world space.
* `parent`: The instance will be a child of `parent` and will have the same local position and rotation as the original.
* `parent` **and** `worldSpace`: The instance will be a child of `parent` and will have the same world position and rotation as the original.
* `parent`**, method takes position and rotation**: The instance will be a child of `parent` and the values will be set as local.
* `parent` **and** `worldSpace`**, method takes position and rotation**: The instance will be a child of `parent` and the values will be set as world space.
* `scene` **and any combination of position, rotation and** `worldSpace`: The same behaviour as that combination, but the instance will be in `scene`.
* `scene` **and** `parent`: `scene` will be ignored because child objects are always in the same scene as the `parent`.

## Fields

| Value                                                                                                       | Description                                                                    |
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [originalImmutable](/engine/6000.7/script-reference/unityengine/instantiateparameters/originalimmutable.md) | It tells the InstantiateAsync if it's safe to do the serialization step async. |
| [parent](/engine/6000.7/script-reference/unityengine/instantiateparameters/parent.md)                       | The desired parent.                                                            |
| [scene](/engine/6000.7/script-reference/unityengine/instantiateparameters/scene.md)                         | The desired scene.                                                             |
| [worldSpace](/engine/6000.7/script-reference/unityengine/instantiateparameters/worldspace.md)               | Choose between world space or local space.                                     |
