Unity精华☀️GetInstanceID 和 GetHashCode 的区别

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Unity精华☀️GetInstanceID 和 GetHashCode 的区别

🟥 两个代码的含义

下面讲解这两个API分别是功能。

//返回xx该实例的哈希代码
xx.GetHashCode
//返回xxx对象的实例id
xxx.GetInstanceID

1️⃣ GetHashCode

GetHashCode为获得该实例的哈希代码。

当该实例为一个物体时,得到的结果和 GetInstanceID 相同。


2️⃣ GetInstanceID

在场景中的每一个实例化出来的对象(实体GameObject、组件等),都有一个唯一固定且各不不同的instanceID。

GetInstanceID便可以得到此ID。

  • 无论是重新打开编辑器,还是EXE文件,这个instanceID都不会发生变化;
  • 不管运行多少次,实体的instanceID或者是实体挂载的组件的instanceID都是唯一且固定的。
  • 同一个Prefab,不管是Inspector挂上去的还是用Resource.Load()动态加载的,这个ID都是一样的。只有当Instantiate成对象之后,每个对象间的ID才会有区别。

2.、不同的Prefab,ID是不一样的



🟧 两个代码的区别

GetHashCode:

  • 不仅可以获取物体、脚本等实例化出来物体的ID,还能获取声明变量的哈希值。

GetInstanceID:

  • 只可获取实例化出来对象的ID,声明的变量是没有该值的


🟨 API的应用场景

1、比较不同

var foundobjects = GameObject.FindGameObjectsWithTag("TagName");
foreach (GameObject o in foundobjects)
{
  if (o.GetInstanceID() == gameObject.GetInstanceID())
  continue;
}


2、找到模型、图片等资源在Assets中的位置

Sprite sprite = GetComponent<Image>().sprite;
print(AssetDatabase.GetAssetPath(sprite.GetInstanceID()));


相关文章
|
6月前
|
图形学
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
|
6月前
|
设计模式 API 图形学
Unity精华☀️ 「设计模式」的终极详解!
Unity精华☀️ 「设计模式」的终极详解!
|
6月前
|
设计模式 安全 图形学
Unity精华☀️ 面试官眼中的「设计模式」
Unity精华☀️ 面试官眼中的「设计模式」
|
8月前
|
移动开发 JSON JavaScript
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
145 1
|
9月前
|
算法
连连看游戏系列教程开篇
连连看游戏系列教程开篇
138 0
|
存储 缓存 前端开发
unity2022秋季面试题
找工作必看面试题
unity2022秋季面试题
|
存储 编解码 小程序
Unity面试题——图形学相关
Unity面试题——图形学相关
468 0
|
Java API 开发工具
Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏
❤️寻找C站宝藏-Unity 📢前言 🧡Unity零基础到入门(一) ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事(^_−)☆ 💛Unity零基础到入门(二) ☀️| Unity下载安装---使用UnityHub下载各个版本的Unity(收藏) 💚Unity零基础到入门(三) ☀️| 轻松学会 Unity界面布局和简单实例——入门级!(^_−)☆ 💙Unity零基础到入门(四) ☀️| 学会这些Unity实用知识点,我也可以做小游戏啦!(^_−)☆ 💜Unity零基础到入门(五) ☀️| 学会这些Unity常用组件,我离开发⭐️3A游戏大作⭐️又近了一步!(^_−)☆
Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏
|
移动开发 前端开发 JavaScript
手把手教你使用CanvasAPI打造一款拼图游戏
手把手教你使用CanvasAPI打造一款拼图游戏
531 0
手把手教你使用CanvasAPI打造一款拼图游戏