Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


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.
Read time 1 minuteLast updated 11 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public static void InstantiateGameObjects(int sourceInstanceID, int count, NativeArray<int> newInstanceIDs, NativeArray<int> newTransformInstanceIDs, Scene destinationScene = default)

Parameters

sourceInstanceID

The instance ID of the GameObject to create additional instances of.

count

The number of instances of the GameObject to create.

newInstanceIDs

Pre-allocated NativeArray to populate with the instance IDs of the new GameObjects. Must be the same size as
count
.

newTransformInstanceIDs

Pre-allocated NativeArray to populate with the instance IDs of the Transforms of the new GameObjects. Must be the same size as
count
.

destinationScene

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.
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(); }}