Unity精华☀️GetInstanceID 和 GetHashCode 的区别

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 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()));


相关文章
|
5月前
|
开发者
探索代码之美:从小白到高手的编程之旅
【9月更文挑战第32天】编程,一门艺术与科学的结合体。它不仅仅是冰冷的机器语言,更是人类智慧的结晶。本文将通过一段个人的技术成长历程,揭示编程背后的哲理和美学,带你领略代码世界的深邃与奇妙。
|
7月前
|
图形学
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
|
7月前
|
设计模式 API 图形学
Unity精华☀️ 「设计模式」的终极详解!
Unity精华☀️ 「设计模式」的终极详解!
|
9月前
|
移动开发 JSON JavaScript
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
151 1
|
10月前
|
算法
连连看游戏系列教程开篇
连连看游戏系列教程开篇
175 0
|
存储 编解码 小程序
Unity面试题——图形学相关
Unity面试题——图形学相关
485 0
|
Java API 开发工具
Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏
❤️寻找C站宝藏-Unity 📢前言 🧡Unity零基础到入门(一) ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事(^_−)☆ 💛Unity零基础到入门(二) ☀️| Unity下载安装---使用UnityHub下载各个版本的Unity(收藏) 💚Unity零基础到入门(三) ☀️| 轻松学会 Unity界面布局和简单实例——入门级!(^_−)☆ 💙Unity零基础到入门(四) ☀️| 学会这些Unity实用知识点,我也可以做小游戏啦!(^_−)☆ 💜Unity零基础到入门(五) ☀️| 学会这些Unity常用组件,我离开发⭐️3A游戏大作⭐️又近了一步!(^_−)☆
Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏
|
Android开发
《Android应用开发攻略》——第1章 入门 1.1 导言:入门
本节书摘来自华章计算机《Android应用开发攻略》一书中的第1章,第1.1节,作者:(美)达尔文(Darwin, I. F.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1225 0