GetInstanceID
是 Unity 中 Object
类的一个方法,它用于获取一个对象的唯一实例标识符。每个 Unity 对象(如游戏对象、组件、资源等)都有一个唯一的实例 ID,这个 ID 在对象的生命周期内是唯一的。
对于它的生命周期是不确定的。网上说在切换场景或者编辑器关闭重启后会变。这些说法太片面,或者说根本不对。
下面做说明
首先在编辑器里在属性面板里点击右上角三个小点点切换到debug模式
然后随便选择一个资产(脚本也是资产的一种),将会看到InstanceId
这个资产InstanceId是在编辑器启动时为每个资产分配的Id,他的生命周期是和编辑器生命周期一样的。即只有在关闭编辑器然后重启后才会重新分配发生变化,换句话说,只要编辑器不关闭,这个资产InstanceID就不会变。这个你可以重启编辑器测一下就知道。
所以切换场景会发生变化这是错误的。但是切换场景会影响实例化的InstanceID而不是上面资产的InstanceId。后面会详细说明。
-
加载资源:
- 当你使用
AssetDatabase.LoadAssetAtPath
或Resources.Load
- 当你使用