sourceInstanceID | 要创建额外实例的 GameObject 的实例 ID。 |
count | 要创建的 GameObject 实例的数量。 |
newInstanceIDs | 预分配的 NativeArray,用于填充新 GameObjects 的实例 ID。必须与 count 大小相同。 |
newTransformInstanceIDs | 预分配的 NativeArray,用于填充新 GameObjects 的 Transform 组件的实例 ID。必须与 count 大小相同。 |
destinationScene | 要将实例化的 GameObjects 放入的场景。如果为默认值,则 GameObjects 将添加到当前活动的场景中。 |
创建指定数量的由其实例 ID 标识的 GameObject 的实例,并使用新 GameObjects 及其 Transform 组件的实例 ID 填充 NativeArrays。
使用 InstantiateGameObjects
以批处理方式实例化多个 GameObjects。可以使用 Resources.InstanceIDToObject 将实例 ID 解析为对象。
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(); } }