Version: 2022.3

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()); } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961