Version: 2023.1

Object.GetInstanceID

切换到手册
public int GetInstanceID ();

返回

int Returns the instance ID of the object.

描述

Gets the instance ID of the object.

The instance ID of an object acts like a handle to the in-memory instance. It is always unique, and never has the value 0. Objects loaded from file will be assigned a positive Instance ID. Newly created objects will have a negative Instance ID, and retain that negative value even if the object is later saved to file. Therefore the sign of the InstanceID value is not a safe indicator for whether or not the object is persistent.

The ID changes between sessions of the player runtime and Editor. As such, the ID is not reliable for performing actions that could span between sessions, for example, loading an object state from a file.

See Also: EditorUtility.InstanceIDToObject, EditorUtility.IsPersistent

using UnityEngine;

public class ExampleScript : MonoBehaviour { // Create 10 game objects, which will have random Instance IDs void Awake() { for (int i = 0; i < 10; i++) { GameObject go = new GameObject("abc" + i.ToString("D3")); } }

// Find all the game objects and display their Instance IDs void Start() { Object[] allObjects = Object.FindObjectsOfType<GameObject>();

foreach (GameObject go in allObjects) { Debug.Log(go + " is an active object " + go.GetInstanceID()); } } }