【问题标题】:How can I match a GameObject to its resource ID in the .Unity scene file如何将 GameObject 与其在 .Unity 场景文件中的资源 ID 匹配
【发布时间】:2016-09-02 08:54:29
【问题描述】:

这些是 Unity 场景的文件内容

--- !u!1 &341095427
GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 143402, guid: e58d4c3907fdc484faf3ab7001288374, type: 2}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 4: {fileID: 341095443}
  m_Layer: 8
  m_Name: Main Camera
  m_TagString: MainCamera
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1

此对象的序列化资源 ID 位于第一行 (341095427)。我的脚本是一个从 Unity 菜单调用的编辑器。我正在遍历当前活动场景中的所有游戏对象。有没有办法为游戏对象获取上述 ID?不幸的是 GetInstanceID() 返回一个不同的值。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    第一行是资产本地 ID。此 id 由 Unity3d Remapper 及其不可访问类解析,并且没有 api 来获取它。 GetInstanceId 得到了这个解析的 ID 缓存 int,但是你如何告诉这个 id 不是同一个 ID 检查此link 以获得有关其工作原理的扩展帮助

    您可以使用自己的 UID 并将其包含在您的对象中:

    public string Id = Guid.NewGuid().ToString();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 2022-05-08
      相关资源
      最近更新 更多