# InstantiateGameObjects(int, int, NativeArray<int>, NativeArray<int>, Scene)

> Creates a specified number of instances of a GameObject identified by its instance ID and populates NativeArrays with the instance IDs of the new GameObjects and their Transform components.

## Definition

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

```csharp
public static void InstantiateGameObjects(int sourceInstanceID, int count, NativeArray<int> newInstanceIDs, NativeArray<int> newTransformInstanceIDs, Scene destinationScene = default)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The instance ID of the GameObject to create additional instances of.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of instances of the GameObject to create.**** (\[NativeArray\<int>]\(/engine/6000.0/script-reference/unity/collections/nativearray1)): Pre-allocated NativeArray to populate with the instance IDs of the new GameObjects. Must be the same size as `count`.**** (\[NativeArray\<int>]\(/engine/6000.0/script-reference/unity/collections/nativearray1)): Pre-allocated NativeArray to populate with the instance IDs of the Transforms of the new GameObjects. Must be the same size as `count`.**** (\[Scene]\(/engine/6000.0/script-reference/unityengine/scenemanagement/scene)): The Scene to place the instantiated GameObjects into. If default, then the GameObjects will be added to the currently active Scene.

### Remarks

Use `InstantiateGameObjects` to instantiate multiple GameObjects as a batch. An instance ID can be resolved to an object using [Resources.InstanceIDToObject](/engine/6000.0/script-reference/unityengine/resources/instanceidtoobject.md).

```csharp
using System;
using Unity.Collections;
using UnityEngine;

public class InstantiateInstanceID : MonoBehaviour
{
public GameObject prefab;
public int count = 100;

    int m_InstanceID;
    NativeArray<int> m_InstanceIds;
    NativeArray<int> m_TransformIds;

    void Start()
    {
        m_InstanceID = prefab.GetInstanceID();
        m_InstanceIds = new NativeArray<int>(count, Allocator.Persistent);
        m_TransformIds = new NativeArray<int>(count, Allocator.Persistent);

        GameObject.InstantiateGameObjects(m_InstanceID, count, m_InstanceIds,m_TransformIds );
    }

    void OnDestroy()
    {
        m_InstanceIds.Dispose();
        m_TransformIds.Dispose();
    }
}
```

Additional Resources: [GameObject.SetGameObjectsActive](/engine/6000.0/script-reference/unityengine/gameobject/setgameobjectsactive.md), [Resources.InstanceIDToObject](/engine/6000.0/script-reference/unityengine/resources/instanceidtoobject.md)
