版本:Unity 6 (6000.0)
语言英语
  • C#

Object.GetInstanceID

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每一项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public int GetInstanceID();

返回值

int 返回对象的实例 ID。

描述

获取对象的实例 ID。

对象的实例 ID 充当内存中实例的句柄。它始终是唯一的,并且值永远不为 0。从文件中加载的对象将被分配一个正的实例 ID。新创建的对象将具有负的实例 ID,即使对象稍后保存到文件中,也会保留该负值。因此,InstanceID 值的符号不是对象是否持久化的安全指示器。

该 ID 会在播放器运行时和编辑器的会话之间发生变化。因此,该 ID 对于执行可能跨越会话的操作(例如,从文件加载对象状态)不可靠。

其他资源:EditorUtility.InstanceIDToObjectEditorUtility.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()); } } }