作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Unity中,它提供了获取GameObject实例的函数
GetInstanceID ()
虽然实例id可能与GameObject不同,但是通过实例id获取GameObject的函数
InstanceIDToObject()
仅在EditorUtility中提供,在release中不能使用。
据我所知,使用 HashTable 可能是一种实现此目的的方法,但是否还有其他方法可以实现此目的?
最佳答案
解决方案可以在 Unity 论坛上找到,为方便起见,我会引用。
不是直接的,但是您可以使用 InstanceID 重命名对象,然后使用 InstanceID 执行 GameObject.Find 以通过这种方式访问对象。
gameObject.name = GetInstanceID().ToString();
var foo = 38375; // A made-up InstanceId...in actual code you'd get this from a real object...you can store the instance ids in an array or something
GameObject.Find(foo.ToString()).transform.position = whatever;
我还有一个哈希表,并使用实例 ID 作为哈希表的键,以便访问每个对象。您可以自己检查并为对象分配一个标识符,但由于每个对象都有一个唯一的 InstanceID(),所以如果情况需要,不妨使用它。
来源:https://forum.unity3d.com/threads/can-i-use-instanceid-to-access-an-object.12817/
关于unity3d - 如何在 Unity 中通过实例 ID 访问 GameObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44017154/
我是一名优秀的程序员,十分优秀!